我只是清理了一些我们写过的代码并注意到对于udp套接字,0被视为连接关闭.
我很确定这是从等效的tcp版本移植相同的recv循环的结果.但这让我很奇怪.对于udp,可以recv返回0吗?在tcp上它发出信号,另一端已经关闭了连接.udp没有连接的概念所以它能返回0吗?如果可以的话,它的含义是什么?
注意:linux中的手册页不区分udp和tcp的返回码为零,这可能就是我们保留代码检查的原因.
c linux udp
c ×1
linux ×1
udp ×1