有没有办法断开活动连接?我知道使用OnConnect可以拒绝连接...但是仅当存在连接时

最佳答案

是的,TidMappedPortTCP是TidTCPServer的后代,因此您基本上可以使用几种不同的方法来断开活动客户端。例如,如果要断开OnExecute事件内的活动客户端(基于某些任意条件),只需在事件处理程序内的某个位置进行此操作即可:

AContext.Connection.Disconnect;


如果您需要断开代码中其他位置的活动连接(例如,不在OnExecute事件处理程序中),则方法如下所示:


创建一个列表(TList或某个集合类),该列表将保存您的活动连接;
在OnConnect事件处理程序中,将所有新客户端添加到此列表;
在OnDisconnect事件处理程序中,从此列表中删除断开连接的客户端;


这样,您将始终拥有活动客户端的集合,这将使您能够找到特定的客户端,访问其连接对象并在需要时调用Disconnect方法。

让我知道您是否需要更详细的代码示例。

10-08 04:48