【问题标题】:linux recv() function flag parameter?linux recv() 函数标志参数?
【发布时间】:2011-09-06 20:59:12
【问题描述】:

如果我在非阻塞套接字上使用recv(sockfd, buffer, len, 0); 会发生什么?

如果套接字sockfd 已关闭或没有可读取的内容,recv() 会阻塞吗? (注意:recv () 中的标志是0)。

【问题讨论】:

    标签: linux function recv


    【解决方案1】:

    如果套接字被标记为非阻塞,recv 将永远不会阻塞。时期。

    如果套接字正常但没有要读取的数据,您将得到 -1 作为返回值,并且 errno 将设置为 EAGAIN。

    如果出现错误(关闭套接字等),您仍然会得到 -1 返回值,但 errno 将被设置为适当的值。

    【讨论】:

      【解决方案2】:

      如果没有要读取的内容,它将阻塞,如果套接字关闭,它将返回错误。

      请参阅recv man page

      【讨论】:

      • 除非套接字被标记为非阻塞,他说的是:-)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-13
      • 2014-05-05
      • 2023-03-17
      • 2019-07-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多