首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

idtcpclient的disconnect的有关问题

2012-03-09 
idtcpclient的disconnect的问题调用idtcpclient1.Disconnectprocedure TForm1.IdTCPServer1Disconnect(AT

idtcpclient的disconnect的问题
调用idtcpclient1.Disconnect;

procedure TForm1.IdTCPServer1Disconnect(AThread: TIdPeerThread);
begin
memo1.Lines.Add('断开连接');
end;
怎么触发不了啊,怎样判断客户端断开连接了

[解决办法]
你肯定没链上,不然不会这样的,判断是否断开可以用 if not IdTCPClient1.Connected then 来判断,
你试下下面的代码:?
procedure TForm1.Button1Click(Sender: TObject);
begin
IdTCPClient1.Host := 'www.csdn.com.cn';
IdTCPClient1.Port := 80;
IdTCPClient1.Connect();
end;

procedure TForm1.IdTCPClient1Status(axSender: TObject;
const axStatus: TIdStatus; const asStatusText: String);
begin
Memo1.Lines.Add(asStatusText);
end;

procedure TForm1.IdTCPClient1Disconnected(Sender: TObject);
begin
Memo1.Lines.Add('断了吧')
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
IdTCPClient1.Disconnect();
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
if not IdTCPClient1.Connected then
begin
Memo1.Lines.Add('断开了');
end
else
begin
Memo1.Lines.Add('连着呢');
end;
end;
我机器上试是没问题的
[解决办法]
还是定时发包检查吧,,像你那样你拔掉网线试试
[解决办法]
idtcpclient1.Disconnect是可以触发IdTCPServer1的Disconnect消息的。可能是其他问题
[解决办法]
不好意思,看错了,异常断开的话可能不会触发IdTCPServer1Disconnect事件,可以发包检测
[解决办法]
打开TCP/IP的keepalive机制,设置成10秒检测,这样就可以即时判断出网络的物理中断
[解决办法]
给出代码看看你是否如何解决的?

热点排行