当服务器终止时,为什么客户端应用程序中的send()会阻塞?

时间:2016-08-04 12:07:23

标签: windows sockets winsock winsock2

我有一个服务器应用程序和一个客户端应用程序(localhost,loopback),它们通过套接字相互交换数据。

当我关闭服务器(控制台)应用程序(通过< Ctrl C>)时,我希望在客户端应用程序中进行的send()recv()调用返回时出错。

我在Linux上发现了这种行为,但是在Windows上执行相同的步骤之后,应用程序无限期挂起send()

这是什么原因?
如何确保应用程序能够以干净的方式检测到远程连接已关闭?

更多诊断信息:

当服务器和客户端都在运行时,我执行netstat -a -o -n -b     我能够在 ESTABLISHED 状态下观察客户端和服务器套接字。     但是,当我运行netstat -a -o -n -b时终止服务器程序后     我甚至无法在网络连接列表中看到客户端程序套接字。

0 个答案:

没有答案