Winsock recv在关机后不工作

我试图得到一个简单的winsock程序工作,所以我创build我的套接字,并发送我的数据就好了。 然后我使用根据msdn的shutdown(ConnectSocket, SD_SEND) ,禁止发送数据,但不接收? msdn的例子也是这样做的。

但是在我调用shutdown我的recv函数返回0而没有收到任何数据。
如果我注释掉closures代码,那么所有的东西都可以正常工作。

我错过了什么吗?

Solutions Collecting From Web of "Winsock recv在关机后不工作"

不,这很正常。 对方通过关闭来应对你的关机。 来自recv的零返回指示正常的连接关闭。 如果你不希望另一方关闭它的一半连接,不要关闭你的连接。

(当对recv调用返回零时,你期望对方做什么?)

如果是HTTP协议,请使用Connection标题关闭连接或保持打开状态:

连接:关闭

在这种情况下,你不需要关闭发送

要么

连接:保持活力

接收将循环而不关闭连接的发送部分