recvfrom()什么时候用UDP套接字返回0?

4 c sockets linux

我以这种方式检查recvfrom()的返回值:
while ((n = recvfrom(sockfd, buf, BUF_SIZE, 0, NULL, NULL)) > 0)
我尝试关闭发送方的套接字,但recvfrom()仍然阻塞.手册说,当对等体执行有序关闭时,recvfrom()返回0.关闭UDP套接字是没用的,对吧?
任何答案将不胜感激.谢谢.

Yu *_*Hao 5

返回值recvfrom是收到的数据报中的用户数据量.0UDP的返回值是可接受的:这并不意味着对等体已关闭连接,因为写入长度为0的数据报是可以接受的.

  • +1,但最好不要对UDP套接字使用“连接”一词。 (2认同)