linux recv()函数标志参数?

时间:2011-06-02 06:59:26

标签: linux function recv

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

如果套接字sockfd已关闭或无法读取,recv()阻止了吗? (注意:recv ()中的标记为0)。

2 个答案:

答案 0 :(得分:2)

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

如果套接字没问题,但没有要读取的数据,则返回值为-1,而errno将设置为EAGAIN。

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

答案 1 :(得分:0)

如果没有任何东西要读,它会阻塞,如果套接字关闭,它将返回错误。

请参阅recv man page