private
FReciveStr: AnsiString; {接收到的数据}
IsConErr: Boolean; {网络毗连是否失败}
FSocket_LB: Integer; {TCP毗连类别,0为生意业务,1为行情,2为查询}
FRetryCount: Integer; {网络毗连重试次数}
FLoginErrEvent: TLoginErrEvent;
{心跳包定时器}
procedure OnTimer_heatpack(Sender: TObject);
{接收客户端发送的数据}
procedure FTCP_serverClientRead(ReciveStr: AnsiString);
procedure RunTCP_Conn_Event(connState: Boolean);
public
FBuffer_Port:array of Integer;
Fbusiness_data: Tbuffer1024; {业务处理数据}
Park_lenght: integer; {收到的缓存包大小}
buf_read: Tbuffer1024; {读取到的字节}
Timer_heatpack: TTimer; {心跳包定时器}
FCMD_data: TMemoryStream;{指令数据}
constructor Create(AOwner: TComponent);override;
destructor Destroy; override;
function open_service:Boolean; {打开服务}
procedure RunLoginErrEvent;
{TCP数据发送函数}
procedure tcppark_sendbyte(Vdata : TMemoryStream);
procedure cskt_Connect(Sender: TObject; Socket: TCustomWinSocket);
procedure cskt_Disconnect(Sender: TObject;Socket: TCustomWinSocket);
procedure cskt_Error(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer);
procedure cskt_Read(Sender: TObject; Socket: TCustomWinSocket);
procedure SetSocket_LB(Value:Integer);
property Socket_LB: Integer read FSocket_LB write SetSocket_LB;
property OnLoginErrEvent: TLoginErrEvent read FLoginErrEvent write FLoginErrEvent;
end;
var
VG_TCP_Client: TTCP_client_service;
VG_TCP_Client_Market: TTCP_client_service;
implementation
uses
ElAES,uMain, ulog, uMsgDlg, uLogin;
constructor TTCP_client_service.Create(AOwner: TComponent);
begin
inherited Create(nil);
FCMD_data := TMemoryStream.Create;{指令数据}
IsConErr := False;
FRetryCount := 0;
Self.OnConnect := cskt_Connect;
Self.OnDisconnect := cskt_Disconnect;
Self.OnError := cskt_Error;
Self.OnRead := cskt_Read;
Timer_heatpack := TTimer.Create(nil); {心跳包定时器}
Timer_heatpack.Enabled := False;
Timer_heatpack.OnTimer := ONTimer_heatpack; {定时器}
Timer_heatpack.Interval := TCP_heatpack_time;
end;
function TTCP_client_service.open_service:Boolean; {打开服务}
begin
try
Inc(FRetryCount);
Active := False;
ClientType := ctNonBlocking;
Host := VGnetworkset.FnetaddressList[VGnetworkset.netindex].ip ;
if (FSocket_LB = 0) or
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |