Linux 如何知道套接字客户端已断开连接?
我正在用linux架构编写代码。 我对套接字服务器和客户端有疑问。 我制作了一个示例代码,其中服务器继续接受连接,客户端连接到服务器。 如果有人以某种方式拔下了网络电缆,因此我正在断开客户端(客户端插座已断开与PC的连接),而服务器端连接仍然处于活动状态,因为我无法通知客户端已断开连接,因为网络已拔出 我怎么知道客户断开了连接 谢谢,Linux 如何知道套接字客户端已断开连接?,linux,sockets,embedded,Linux,Sockets,Embedded,我正在用linux架构编写代码。 我对套接字服务器和客户端有疑问。 我制作了一个示例代码,其中服务器继续接受连接,客户端连接到服务器。 如果有人以某种方式拔下了网络电缆,因此我正在断开客户端(客户端插座已断开与PC的连接),而服务器端连接仍然处于活动状态,因为我无法通知客户端已断开连接,因为网络已拔出 我怎么知道客户断开了连接 谢谢, Neel为本地套接字设置SIGPIPE,为每种套接字类型设置eof on read。您需要在套接字上配置keepalive或发送应用程序级心跳消息,否则侦听端将无
Neel为本地套接字设置SIGPIPE,为每种套接字类型设置eof on read。您需要在套接字上配置keepalive或发送应用程序级心跳消息,否则侦听端将无限期地等待数据包到达。如果控制协议,应用程序级心跳可能会更容易。另一方面,这两种解决方案都有助于保持网络中NAT网关之间的连接 看看这个答案:
另请参阅此Linux文档:当一个线程在读取时阻塞时,我在读取时出错,但并非总是在读取时出错。找出插座断开的准确方法是什么?