为什么第一次调用recv是没错,第二次就有错了?
为什么第一次调用recv是没错,第二次就有错了?我编了个服务器程序,有这样一段程序:
if(recv(sockConn,recvBuf,sizeof(recvBuf)+1,0) == SOCKET_ERROR)
{
printf("rece() error!\n");
return;
}
else
printf("%s\n",recvBuf);
if(recv(sockConn,Makesure,sizeof(Makesure),0) == SOCKET_ERROR)
{
perror("recv");
printf("error is %d!\n",error);
return;
}
为什么在执行时,第一个没错误,但第二个就不行了?第二个应该等客户端发送的数据,但是它没有等待就直接返回错误?
之前我因为我要用selet函数,所以曾将sockConn设成非阻塞模式,但后来有改回阻塞模式了。是什么错误?