如何完全断开TCPClient? (印)

时间:2010-08-26 12:01:22

标签: delphi indy

当我的Tcpclient工作时,使用以下代码:

TCPClient.Disconnect;
TCPClient.Connect;

我得到“引发异常类EIdAlreadyConnected,消息'已经连接。'。”错误仍然存​​在(而之前已经断开连接)。

那么,我怎么能完全断开它?

谢谢

3 个答案:

答案 0 :(得分:18)

在indy 10使用你必须确保inputbuffer为空。

if idTcpClient.connected then
begin
 idTcpClient.IOHandler.InputBuffer.clear;
 idTcpClient.Disconnect;
end;

答案 1 :(得分:1)

你说它已断开连接,但你只是断开了命令。

网络流量需要时间,并且可能在您真正断开连接之前重新连接。

可能你需要监视一些连接状态或事件,等到你真的断开连接。

...或尝试使用try..except

处理异常并忽略它

答案 2 :(得分:1)

TCPClient.IOHandler.InputBuffer.Clear;
TCPClient.IOHandler.CloseGracefully;
TCPClient.Disconnect;