Y
yongqiang
Unregistered / Unconfirmed
GUEST, unregistred user!
在广域网上用INDY中的IDTCPClient,IDTCPServer进行数据传输,在IDTCPClient发送数据的时候,有时IDTCPClient会发生错误而主动断开连接,此时IDTCPServer正常是应该能截获此异常而断开连接。但是现在发现有时IDTCPServer不能处理这个异常、程序停止了不能断开连接。部分代码如下:
IDTCPClient发送数据
with IDTCPClient do begin
Try
Connect(10000);
//分成多个数据包发送数据
Except
DisConnect;
end;
end;
IDTCPServer.Excute接收数据
with AThread do begin
AThread.Connection.ReadTimeOut := 10000;
Try
if (Athread.Connected) and (not AThread.Terminated) then begin
//接收数据
end;
Except
AThread.Connection.DisConnect;
end;
end;
IDTCPServer的OnDisconnect事件加入ShowMessage('Client DisConnect');
但是有时能触发IDTCPServer的OnDisconnect事件,有时就不能执行IDTCPServer的OnDisconnect事件。
发送和接收数据分别用WriteBuffer和ReadBuffer
问:怎么样才能让IDTCPClient 发生异常断开时IDTCPServer也自动断开,并执行OnDisconnect事件
IDTCPClient发送数据
with IDTCPClient do begin
Try
Connect(10000);
//分成多个数据包发送数据
Except
DisConnect;
end;
end;
IDTCPServer.Excute接收数据
with AThread do begin
AThread.Connection.ReadTimeOut := 10000;
Try
if (Athread.Connected) and (not AThread.Terminated) then begin
//接收数据
end;
Except
AThread.Connection.DisConnect;
end;
end;
IDTCPServer的OnDisconnect事件加入ShowMessage('Client DisConnect');
但是有时能触发IDTCPServer的OnDisconnect事件,有时就不能执行IDTCPServer的OnDisconnect事件。
发送和接收数据分别用WriteBuffer和ReadBuffer
问:怎么样才能让IDTCPClient 发生异常断开时IDTCPServer也自动断开,并执行OnDisconnect事件