struct timeval timeout;
timeout.tv_sec = 0;
timeout.tv_usec = 1000*TIMEOUT;
//设置接收超时
timeout.tv_sec = 0;
timeout.tv_usec = 1000*TIMEOUT;
//设置接收超时
setsockopt(sockfd,SOL_SOCKET,SO_RCVTIMEO,(char *)&timeout,sizeof(struct timeval));
出现错误1:在connect的时候发生 Operation now in progress 错误
解决方法:将上面的代码放到connect之后
出现错误2:recv没等到超时时间,立刻返回
解决方法:不应将socket设为非阻塞的,recv的第四个参数MSG_WAITALL改为0