专业律所网站建设,做网站建设的价格,wordpress 使用ajax,凡科商城是什么linux和windows下用setsockopt设置SO_SNDTIMEO,SO_RCVTIMEO的参数的一点区别 UDP的socket在某些情况#xff1a;如对方关闭时#xff0c;本地可能sendto不出去数据#xff0c;然后recvfrom就会被阻塞#xff0c;这时就需要设置 这两个参数的值提高程序质量。 linux: … linux和windows下用setsockopt设置SO_SNDTIMEO,SO_RCVTIMEO的参数的一点区别 UDP的socket在某些情况如对方关闭时本地可能sendto不出去数据然后recvfrom就会被阻塞这时就需要设置 这两个参数的值提高程序质量。 linux: struct timeval timeout{3,0};//3s int retsetsockopt(sock_fd,SOL_SOCKET,SO_SNDTIMEO,(const char*)timeout,sizeof(timeout)); int retsetsockopt(sock_fd,SOL_SOCKET,SO_RCVTIMEO,(const char*)timeout,sizeof(timeout)); 如果ret0 则为成功,-1为失败,这时可以查看errno来判断失败原因 int recvdrecv(sock_fd,buf,1024,0); if(recvd-1errnoEAGAIN) { printf(timeout\n); } windows: int timeout 3000; //3s int retsetsockopt(sock_fd,SOL_SOCKET,SO_SNDTIMEO,timeout,sizeof(timeout)); int retsetsockopt(sock_fd,SOL_SOCKET,SO_RCVTIMEO,timeout,sizeof(timeout)); 而solaris则不支持。