标签: c linux sockets
我想知道为什么使用标准socket功能关闭close而没有事先调用shutdown函数后由于不可用的对等方而无法发送数据不会导致要返回同一recv的{{1}}函数?
socket
close
shutdown
recv
伪代码:
答案 0 :(得分:2)
正确。它会导致recv()以流结束状态退出。
recv()
您的代码永远不会检查返回值,因此它永远不会检测到它为零。您需要将结果存储到变量中;检查-1表示错误;检查它是否为零,表示流的结束;否则将其用作返回数据的长度。