今天我写了一个socket应用程序,大概意思如下
new socket
connect
while(1)
{
rc=recv(fd,buffer,cnt,0);
if(rc == ERROR)
break
else if(rc == 0)
break;
}
printf("recv over\n");
close(fd);
结果程序怎么也不会打印recv over。
我一直想不通,后来终于想到recv是阻塞的,即使数据发送端发完数据了,这边还在那里等待
标记下,可能以后还会犯这样的错误