Indy心跳法判断断线的问题
用indy9没多久,遇到一个问题就是如何判断客户端和服务器之间的连接已断,在大富翁论坛找到一个心跳法,如下:
uses WinSock2;procedure TForm1.IdTCPServer1Connect(AThread: TIdPeerThread);type TCP_KeepAlive = record OnOff: Cardinal; KeepAliveTime: Cardinal; KeepAliveInterval: Cardinal end;var Val: TCP_KeepAlive; Ret: DWord;begin Val.OnOff:=1; Val.KeepAliveTime:=xxx; Val.KeepAliveInterval:=xxx; WSAIoctl(AThread.Connection.Socket.Binding.Handle, IOC_IN or IOC_VENDOR or 4, @Val, SizeOf(Val), nil, 0, @Ret, nil, nil)end;