用Tserversocket采用非阻塞方式于客户电脑连接进行会话
Tserversocket采用多线程发送信息
当客户端正常端开时,TSERVERSOCKET能在ONCLIENTDISCONNECT中处理
但当客户端非法终止,比如死机、掉网等,Tserversocket就无法获得这个消息了请问该如何处理才能判断或检测到客户已经端开
我用
var x:integer;
begin
for x:=0 to serversocket3.Socket.ActiveConnections-1 do
begin
if serversocket3.Socket.Connections[x].Connected then
memo1.Lines.Add('检查:'+inttostr(serversocket3.Socket.Connections[x].Remoteport)+'在')
else
memo1.Lines.Add('检查:'+inttostr(serversocket3.Socket.Connections[x].Remoteport)+'不在')
end;
label9.Caption:=inttostr(serversocket3.Socket.ActiveConnections);
end;运行结果:全是“在”
Tserversocket采用多线程发送信息
当客户端正常端开时,TSERVERSOCKET能在ONCLIENTDISCONNECT中处理
但当客户端非法终止,比如死机、掉网等,Tserversocket就无法获得这个消息了请问该如何处理才能判断或检测到客户已经端开
我用
var x:integer;
begin
for x:=0 to serversocket3.Socket.ActiveConnections-1 do
begin
if serversocket3.Socket.Connections[x].Connected then
memo1.Lines.Add('检查:'+inttostr(serversocket3.Socket.Connections[x].Remoteport)+'在')
else
memo1.Lines.Add('检查:'+inttostr(serversocket3.Socket.Connections[x].Remoteport)+'不在')
end;
label9.Caption:=inttostr(serversocket3.Socket.ActiveConnections);
end;运行结果:全是“在”
额户端定时发一信号到服务端如果服务端在一定时间内没收到,则表示断开
你搜一下以前的贴子,有很多类似的贴子