阻塞socket适合发送大量的数据,默认send超时为无限大。对阻塞理解不深刻的初学者,可能会犯如下错
Sever:
while(true)
{
int rev = socket.recieve(buff);
if(rev===0) return ; //这个时候永远不可能==0
处理buff数据,和客户端对话。
send();
}
客户端:{
int rev = socket.recieve(buff);
if(rev===0) return ;
处理buff数据,和服务器对话。
send();
}
可以这是Timeout使得send异常,此后非现实调用将socket变为阻塞的,此时socket为非阻塞的。