关于D6的Servet socket的连接数问题
D6服务端ServerSocket,客户端ClientSocket,客户端连接服务端后,ActiveConnect显示1,但客户断开后,服务知道断开了,可是Ac..依然显示1,怎么回事?注:只有一个客户 问题点数:0、回复次数:2Top
1 楼soundbug(兼职乞丐)回复于 2004-12-04 18:39:41 得分 0
你是否在ServerSocket的ClientDisconnect事件里面判断的?在这个事件里好象判断是有这个问题。不过你另外写个方法检测就可以知道其实ServerSocket1.Socket.ActiveConnections已经=0了
procedure TForm1.ServerSocket1ClientDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
StatusBar1.Panels[0].Text := IntToStr(ServerSocket1.Socket.ActiveConnections);
//这里还是显示1
end;
-------
//这里单独检测
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
StatusBar1.Panels[0].Text := IntToStr(ServerSocket1.Socket.ActiveConnections);
//这里已经显示为0了
end;Top
2 楼yw1621(我爱Delphi)回复于 2004-12-04 19:57:15 得分 0
OnClientDisconnect(Sender: TObject; Socket: TCustomWinSocket);
这个事件在触发时还没断开连接,这个事件是在客户端请求断开连接但还没断开时触发的,在此事件执行之后才真正断开,所以ActiveConnections不等于0;
Top




