Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对recv()感到困惑_C_Sockets_Client_Recv - Fatal编程技术网

对recv()感到困惑

对recv()感到困惑,c,sockets,client,recv,C,Sockets,Client,Recv,对不起,如果这个问题已经回答了,但我找不到 我对recv和recvfrom有点困惑。一旦服务器绑定地址或接受TCP连接,就会调用recv。recv是否经常检查已发送的消息,还是等待收到消息?如果它确实等待,等待时间有多长 我不知道我说的是否有道理,但如果有人能启发我,我将不胜感激 如果套接字上没有可用的消息,并且未在套接字的文件描述符上设置O_NONBLOCK,recv将阻塞,直到消息到达 如果套接字上没有可用的消息,并且在套接字的文件描述符上设置了O_NONBLOCK,则recv将失败并将er

对不起,如果这个问题已经回答了,但我找不到

我对recv和recvfrom有点困惑。一旦服务器绑定地址或接受TCP连接,就会调用recv。recv是否经常检查已发送的消息,还是等待收到消息?如果它确实等待,等待时间有多长

我不知道我说的是否有道理,但如果有人能启发我,我将不胜感激

如果套接字上没有可用的消息,并且未在套接字的文件描述符上设置O_NONBLOCK,recv将阻塞,直到消息到达

如果套接字上没有可用的消息,并且在套接字的文件描述符上设置了O_NONBLOCK,则recv将失败并将errno设置为[EAGAIN]或[eWoldBlock]

资料来源:

如果套接字上没有可用的消息,并且未在套接字的文件描述符上设置O_NONBLOCK,recv将阻塞,直到消息到达

如果套接字上没有可用的消息,并且在套接字的文件描述符上设置了O_NONBLOCK,则recv将失败并将errno设置为[EAGAIN]或[eWoldBlock]


来源:

注意,您可以使用select或poll实现超时,这也允许您同时等待多个套接字。

注意,您可以使用select或poll实现超时,这也允许您同时等待多个套接字