Linux和windows下setsockopt用法
linux:
struct timeval timeout={3,0};//3s
int ret=setsockopt(sock_fd,SOL_SOCKET,SO_SNDTIMEO,&timeout,sizeof(timeout));
int ret=setsockopt(sock_fd,SOL_SOCKET,SO_RCVTIMEO,&timeout,sizeof(timeout));
如果ret==0 则为成功,-1为失败,这时可以查看errno来判断失败原因
int recvd=recv(sock_fd,buf,1024,0);
if(recvd==-1&&errno==EAGAIN)
{
printf("timeout\n");
}
windows:
int timeout = 3000; //3s
int ret=setsockopt(sock_fd,SOL_SOCKET,SO_SNDTIMEO,(char*)&timeout,sizeof(timeout));
int ret=setsockopt(sock_fd,SOL_SOCKET,SO_RCVTIMEO,(char*)&timeout,sizeof(timeout));
本文详细解析了在Linux和Windows环境下如何使用setsockopt函数设置套接字的发送和接收超时时间。通过具体代码示例展示了如何在两种操作系统中设置超时参数,并介绍了如何检查函数调用是否成功及如何处理超时错误。
2034

被折叠的 条评论
为什么被折叠?



