如何检测tcp客户端连接到服务器在c + +

我有一个TCP客户端/服务器,我想检测客户端的连接丢失; 因为我的客户端有多个接口,我一次连接到服务器与其中之一,我想知道如何检测客户端的连接丢失,以便我可以连接我的tcp客户端与另一个接口到服务器,如果他们全部我把我的数据存储在文本文件中。 我GOOGLE了,我已经看到保持活着,但不是我想要的。

如果这是重要的我的项目是在Linux和代码是在C + +。

Solutions Collecting From Web of "如何检测tcp客户端连接到服务器在c + +"

我发现的最好方法是检查缓冲区,如果缓冲区为空,则意味着您的TCP客户端成功发送数据包到TCP服务器,您可以发送下一个数据包; 为了检查缓冲区,你可以使用SIOCOUTQ ; 它很容易使用,并显示你有多少数据在你的缓冲区。

尝试从套接字读取。 当套接字关闭时,读取失败,给你简单的检测。 您可以在专用的检测线程中执行此操作,以便您的主线程不会阻塞。

TCP连接被设计为纠错而不是时间关键。 此错误更正包括网络超时。

在套接字实际关闭之前,读写操作不会失败,这可能不是很长时间。

客户端判断连接是否超时的唯一方法是客户端检测到它在指定的时间内没有收到任何消息,并手动关闭套接字。

这就是Keep Alive的信息。