猿问

检测TCP客户端断开连接

检测TCP客户端断开连接

假设我正在运行一个简单的服务器并且已经accept()从客户端编辑了一个连接。

告诉客户端何时断开连接的最佳方式是什么?通常情况下,客户端应该发送一个关闭命令,但如果它手动断开连接或完全失去网络连接怎么办?服务器如何检测或处理此问题?


呼唤远方
浏览 1300回答 3
3回答

米琪卡哇伊

选择(使用读掩码设置)将返回句柄信号,但是当您使用ioctl *检查待读取的字节数时,它将为零。这表示套接字已断开连接。这是关于检查客户端已断开连接的各种方法的一个很好的讨论:Stephen Cleary,检测半开放(丢弃)连接。*对于Windows使用ioctlsocket。
随时随地看视频慕课网APP
我要回答