其实不会用心跳包,就定义了个定时器,发送个aa就增加个timer1。tag,结果我没断开他数到30秒(我设的30秒没反映就宣布断开)就宣布断开了?可能是收数据时置timer1.tag为0没起作用,程序如下,大侠请帮忙!
procedure Tmainform.Timer1Timer(Sender: TObject);beginif Timer1.Tag>30 then
begin timer1.Enabled:=false;
showmessage('连接断开'); timer1.tag:=0;
end
else Tcpclient1.sendln('aa');
Timer1.Tag:=Timer1.Tag+1;
end;
end.procedure Tmainform.TcpServer1Accept(Sender: TObject;
ClientSocket: TCustomIpClient);
var
s,sre,aa:string;
DataThread:TclientDatathread;
begin
DataThread:=TclientDataThread.Create(True);
DataThread.TargetList:=infoMemo.Lines;
StatusBar1.Panels[1].Text:='连接到'+ClientSocket.LookupHostName(ClientSocket.RemoteHost)+
'('+ClientSocket.RemoteHost+')';
s:=ClientSocket.Receiveln; aa:=s; if aa='aa' then begin Timer1.Tag:=0; end;\\感觉这里没有接收到‘aa',我没断开它就弹窗口说对方连接断开了
sre:=copy(s,1,3);
if sre='***' then
begin
s:=copy(s,4,length(s)-3);
s:=strtohexstr(s);
Application.MessageBox('收到16进制数据','接收数据类型',MB_ICONWARNING or MB_OK);
chckbx16show.Enabled:=false;
flag:=true; end;
while s<>'' do
begin
DataThread.ListBuffer.Add(s);
s:=ClientSocket.Receiveln;
end;
DataThread.Resume;
end;
procedure Tmainform.Timer1Timer(Sender: TObject);beginif Timer1.Tag>30 then
begin timer1.Enabled:=false;
showmessage('连接断开'); timer1.tag:=0;
end
else Tcpclient1.sendln('aa');
Timer1.Tag:=Timer1.Tag+1;
end;
end.procedure Tmainform.TcpServer1Accept(Sender: TObject;
ClientSocket: TCustomIpClient);
var
s,sre,aa:string;
DataThread:TclientDatathread;
begin
DataThread:=TclientDataThread.Create(True);
DataThread.TargetList:=infoMemo.Lines;
StatusBar1.Panels[1].Text:='连接到'+ClientSocket.LookupHostName(ClientSocket.RemoteHost)+
'('+ClientSocket.RemoteHost+')';
s:=ClientSocket.Receiveln; aa:=s; if aa='aa' then begin Timer1.Tag:=0; end;\\感觉这里没有接收到‘aa',我没断开它就弹窗口说对方连接断开了
sre:=copy(s,1,3);
if sre='***' then
begin
s:=copy(s,4,length(s)-3);
s:=strtohexstr(s);
Application.MessageBox('收到16进制数据','接收数据类型',MB_ICONWARNING or MB_OK);
chckbx16show.Enabled:=false;
flag:=true; end;
while s<>'' do
begin
DataThread.ListBuffer.Add(s);
s:=ClientSocket.Receiveln;
end;
DataThread.Resume;
end;
本群由原来近200人精简到目前几十人的精英,淘汰了若干无助群发展的人
现在需要继续壮大本群,望有意者\高手\专家们加盟
QQ群号:29489381务必注意:加入时请看群公告内容,否则将会取消成员资格