如题,如何释放已断开的ServerSocket.Socket.ActiveConnections的资源.如果有现成例子参考的请发送到[email protected],另开帖送分
解决方案 »
- 李维都有什么书..最新的 和经典的 有知道的说下 谢谢!!
- 谁有注册版本的suipack 6和suipack,发给我用一下,只用一次就可以了,已开两贴放200分
- 本地数据集ClientDataSet可以用来建立一个简单的文件数据库吗?
- 求获取指定路径所有文件夹和文件的程序,谢谢
- 求助,各位大哥 2005年5月18号,在 delphi 里应该怎么表示?谢谢
- delphi怎么调Messenger API Type Library ???微软MVP在哪啊.
- 有关在delphi6里写关于Object pascal的程序的问题。
- 用DELPHI6的兄弟,请给我个SP2的下载地址吧。谢谢
- 各位delphi高手,帮帮忙,谢谢…
- delphi dbgrid 如果表是可编辑的,直接编辑,某次,编辑错了,想回到前一步,怎么实现?
- 请问多帐套,怎么注册?目前注册的信息只能存在一个数据库里。
- 请教关于OpenDialog 的简单问题
UseInfo_Record=record
UseSocket: TCustomWinSocket; //用于连接客户的套接字
sUSUEID:string;//用户唯一ID
LastTime:TDateTime; //最后接收信息的时间
iStatus:integer;
end;
记录下每个客户端的信息
每次心跳包到的时候 修改 LastTime:TDateTime; //最后接收信息的时间 设置定显示器 Timer 每隔段时间检查 LastTime
如果 now -LastTime >心跳包时间间隔 即认为断线了
socket.close;可用 TList 链表保存维护第个客户的UseInfo_Record的信息
pUseInfo:^UseInfo_Record
for i:=List.count-1 downto 0 do
begin
pUseInfo:= List[i];
if now-pUseInfo.lastTime>25 then
begin
pUseInfo.UseSocket.close;
dispose(pUseInof);
List.delete(i);
end;
end;
List.add(pUseInfo);当客户连接到时 新增一条记录 填充 pUseInfo
List.delete(i);大概是以上样子
http://www.west263.com/info/html/wangluobiancheng/qita/20080411/63944.html
这是个比较无解的问题
当客户端非正常断开 服务端是不知道的,会一直保持连接状态 所有系统都是这样
只能自己判断了