我有一个等待recv的套接字,然后在接收到数据后,向前发送数据进行处理。但是,然后它再次用于 recv,这一次它什么也没收到,返回 -1,当打印 errno 时,它打印 35(即EAGAIN
)。
这只发生在 MAC OS Lion 操作系统上,对于其他操作系统,它运行得非常好
do{
rc = recv(i, buffer, sizeof(buffer), 0);
if (rc < 0){
printf("err code %d", errno);
}
if(rc == 0){
//Code for processing the data in buffer
break;
}
....
}while(1);
编辑:更正缩进和 errno