【问题标题】:When does recvfrom() return 0 with a UDP socket?recvfrom() 何时使用 UDP 套接字返回 0?
【发布时间】:2013-10-24 02:41:20
【问题描述】:

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

【问题讨论】:

    标签: c linux sockets


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-23
      • 2019-03-24
      • 2015-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多