c ++ winsock2,如何判断连接何时关闭

asa*_*ams 2 c++ sockets winsock

我有一个使用winsock2的c ++程序.我想知道如何判断某人与我的程序的连接何时关闭.

Mar*_*wis 5

使用select等待套接字读取; 当套接字关闭时,winsock应该将其报告为可读.从套接字接收将给你0字节,告诉你套接字已关闭.

  • 检查`recv`的返回值时,它可以返回*0*,表示套接字已成功关闭(如您所述),或者`SOCKET_ERROR`告诉您套接字未完全关闭(例如超时)或您身边发生了错误.必须检查这两个条件,以便捕获连接关闭的所有情况. (2认同)