我正在努力让一个简单的winsock程序工作,所以
我创建我的套接字并发送我的数据就好了。然后我使用shutdown(ConnectSocket, SD_SEND)
根据msdn,禁用发送数据,但不接收? msdn上的例子也是这样做的。
但是在我调用shutdown
后,我的recv函数返回0而没有收到任何数据
如果我注释掉关闭代码,一切都会正常工作。
我错过了什么吗?
答案 0 :(得分:3)
不,那是正常的。另一方通过关闭来响应您的关机。从recv
返回零表示正常连接关闭。如果您不希望对方关闭其一半连接,请不要关闭您的连接。
(当对recv
的调用返回零时,您希望对方做什么?)
答案 1 :(得分:-3)
如果是HTTP协议,请使用连接标头关闭连接或保持打开状态:
连接:关闭
在这种情况下,您无需关闭发送
或
连接:保持活力
接收将循环而不关闭连接的发送部分