c++ - 关机后 Winsock recv 不工作

标签 c++ windows sockets winsock

我正在尝试让一个简单的 winsock 程序运行,所以 我创建我的套接字并发送我的数据就好了。然后我使用 shutdown(ConnectSocket, SD_SEND) 根据 msdn,禁用发送数据,但不接收? msdn 上的示例也是这样做的。

但是在我调用 shutdown 之后,我的 recv 函数返回 0 而没有收到任何数据。
如果我注释掉关闭代码,一切正常。

我错过了什么吗?

最佳答案

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

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

关于c++ - 关机后 Winsock recv 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9846165/

相关文章:

c# - SL4 AsyncEventArgs 在第二个 Socket 连接后抛出 InvalidOperationException

windows - 适用于 Windows 的双 socket

C++ 实现我自己的 static_assert

c++ - 如何解释像 0x0A 这样的十六进制数?

windows - 在Windows上限制Docker容器磁盘大小

windows - 输入文件中的 set/p 仅适用于批处理文件中的第一行

c++ - 将两个线程设置为相同的 cpu 关联 pthread_getaffinity_np

c++ - 为什么必须在何处以及为什么要放置"template"和"typename"关键字?

windows - 在批处理文件中使用通配符

Java - 套接字和 Swing