从实际数据返回中对客户端检测信号进行排序



简而言之,我使用tcplistener/tcpclient设置了服务器,它有几十台客户端机器。一切都很好,只是我还没有设置一个系统来检测客户端是否已断开连接。我想使用心跳(定期发送数据包)来显示客户端仍然存在。不幸的是,服务器调用了一个等待接收块,以便从客户端获取实际数据,但它却在接收心跳。有没有什么方法可以在专门查找心跳的同一端口上设置另一个接收-谢谢

一种常见的方法是将数据包定义为具有特定类型,因此服务器数据包接收代码可以检查类型并进行适当处理。即

if ( packet.type == PacketTypes.HeartBeat )
    //keep alive the client
else
    //it's data (or another packet)

当你添加代码时,我可以给出一个更好的例子。

更新:

根据我们在评论中的讨论,您可以简单地创建一个单独的线程来处理您的心跳数据包。在这个线程中,套接字接收代码将通过首先检查类型来忽略除心跳数据包之外的任何内容。

您还可以在同一端口上创建另一个线程来容纳套接字接收,以处理您的数据。在这种情况下,它将忽略接收到的任何心跳数据包。

相关内容

  • 没有找到相关文章

最新更新