如何正确断开TIdTcpClient的连接

时间:2018-11-05 15:32:11

标签: delphi indy

如何将TidTcpClient与TIdTcpServer正确断开连接?

我的意思是,如果我在客户端调用Disconnect,则会在服务器onexception事件中收到10054 connection reset by peer

如果我在AContext(使用队列/ OnExecute事件)服务器上调用断开连接,则在onexception事件上返回connection closed gracefully

我当前的协议不使用OnConnect和OnDisconnect事件,仅使用带有IdTCPServer1.ContextClass := TClientContext;的OnExecute

我的意思是因为当我使用“上下文列表”返回连接的客户端数时,总是返回错误的数字,所以现在我使用:

InterlockedIncrement(FClientCount);
TThread.Synchronize(nil, UpdateUI);

在OnConnect事件上增加,在OnDisconnect事件上减少。 由于在OnException调用OnDisconnect时,也请减少数字。

也许TIdTcpClient正确断开连接计数可以使用Contexts List no正常工作吗?

0 个答案:

没有答案