您的位置:首页 > 运维架构 > Linux

linux和windows下用setsockopt设置send(), recv() 超时的参数的一点区别

2012-05-09 18:46 531 查看
资料出处:http://hi.baidu.com/genie_bottle/blog/item/f241f817a4f7020ec83d6dfc.html

linux和windows下用setsockopt设置send(), recv() 超时的参数的一点区别

2008-12-15 20:18

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,&timeout,sizeof(timeout));

int ret=setsockopt(sock_fd,SOL_SOCKET,SO_RCVTIMEO,&timeout,sizeof(timeout));
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: