关于TServerSocket的Connections的问题 (100分)

  • 主题发起人 主题发起人 豆非
  • 开始时间 开始时间

豆非

Unregistered / Unconfirmed
GUEST, unregistred user!
建于TServerSocket当有多个ClientSocket连接时,Server的Connections的Index应该是按
顺序增加的,但断开时Connections的Index又是怎样变化的呢?比如,有4个Client连接上
Server其Connections的Index应该是从0-3,但当第1号Clinet断开时,Index是怎样变化的呢?
还有怎样才能知道断开的Client的Connections的Index是多少?
 
我想是变成了0-2,不会是1-3。[^]
 
肯定是0-2,不会是1-3
 
我是说第1号,不是第0号
 
>>怎样才能知道断开的Client的Connections的Index
您可以通过参数中的Socket的Handle属性来分辨,如果Connections.Handle=Socket.Handle
就找到了被断开的连接的Index了。

其余同意楼上们的看法。
 
是这样吗?
procedure TForm1.ServerSocket1ClientDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
var
i:Integer;
begin
i:=0;
while Connections.Handle<>Socket.Handle do begin
//其他语句
end;
end;
 
完全不必处理,由系统自动完成,源代码在 ScktComp 中.
Connections 实际调用了系统的GetConnections(i) 函数,间接取得FConnections,而FConnections是TLists类型.

 
接受答案了.
 
后退
顶部