如何将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正常工作吗?