Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/62.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.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
C 非阻塞套接字在不使用数据的情况下获取错误否?_C_Sockets_Tcp_Network Programming - Fatal编程技术网

C 非阻塞套接字在不使用数据的情况下获取错误否?

C 非阻塞套接字在不使用数据的情况下获取错误否?,c,sockets,tcp,network-programming,C,Sockets,Tcp,Network Programming,找到此例程以检查套接字状态 ssize_t rret = recv(fd, buf, 1, MSG_PEEK) // check rret errno 我的问题是,当套接字同时有挂起的数据和错误时会发生什么?如何处理写入引起的错误。除EAGAIN/ewoodblock之外的所有套接字错误对连接都是致命的,并导致丢弃所有挂起的数据EAGAIN/ewoodblock在非阻塞模式下出现,应该会导致您使用select()/poll()/epoll()来确定下一步操作的成功时间。关于这个问题,没有什么

找到此例程以检查套接字状态

ssize_t rret = recv(fd, buf, 1, MSG_PEEK)
// check rret errno


我的问题是,当套接字同时有挂起的数据和错误时会发生什么?如何处理写入引起的错误。

EAGAIN/ewoodblock
之外的所有套接字错误对连接都是致命的,并导致丢弃所有挂起的数据
EAGAIN/ewoodblock
在非阻塞模式下出现,应该会导致您使用
select()/poll()/epoll()
来确定下一步操作的成功时间。关于这个问题,没有什么不清楚或需要编码的地方。@user207421抱歉,不清楚,我更新了我的问题。这里没有不清楚的地方。我明白了,我回答了。但是您的代码是错误的。您必须将返回值存储在
int
中。否则与-1的比较将永远不会成功。ssize_t recv(int socket、void*buffer、size_t length、int标志)@用户207421声明