socket为send和recv设置超时时间
来源:互联网 发布:淘宝上卖汽车用品 编辑:程序博客网 时间:2024/06/05 07:55
http://blog.csdn.net/aa2650/article/details/17417385
linux和windows下用setsockopt设置SO_SNDTIMEO,SO_RCVTIMEO的参数的一点区别
struct timeval timeout={3,0};//3s
int ret=setsockopt(sock_fd,SOL_SOCKET,SO_SNDTIMEO,(const char*)&timeout,sizeof(timeout));
int ret=setsockopt(sock_fd,SOL_SOCKET,SO_RCVTIMEO,(const char*)&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));
UDP的socket在某些情况:如对方关闭时,本地可能sendto不出去数据,然后recvfrom就会被阻塞,这时就需要设置 这两个参数的值提高程序质量。
linux:struct timeval timeout={3,0};//3s
int ret=setsockopt(sock_fd,SOL_SOCKET,SO_SNDTIMEO,(const char*)&timeout,sizeof(timeout));
int ret=setsockopt(sock_fd,SOL_SOCKET,SO_RCVTIMEO,(const char*)&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));
而solaris,则不支持。
0 0
- socket为send和recv设置超时时间
- socket为send和recv设置超时时间
- socket为send和recv设置超时时间
- C++ Socket为send recv设置堵塞超时时间
- [转]socket的send、recv阻塞设置阻塞超时时间
- socket的send、recv阻塞设置阻塞超时时间
- socket的send、recv阻塞设置阻塞超时时间
- socket的send、recv阻塞设置阻塞超时时间
- socket的send、recv阻塞设置阻塞超时时间
- 关于socket的send和recv的超时设置
- ACE_SOCK_Stream send和recv超时设置
- linux 设置send、recv超时
- recv()与send()设置超时
- recv、send函数windows和linux下超时设置
- 用setsockopt设置send(),recv()设置超时
- connect、send、recv函数如何设置超时
- socket send 和 recv详解
- socket中的send和recv
- UVA - 10305 - Ordering Tasks (拓扑排序!)
- 屏蔽控制台应用程序的窗口#pragma comment(linker, "/subsystem:windows /ENTRY:mainCRTStartup")
- vs2010、vs2012下gsl1.8的配置
- uml用例图
- 如何自己构建一个小型的Zoomeye----从技术细节探讨到实现
- socket为send和recv设置超时时间
- Gradle Android 插件 官方文档(7)
- [BZOJ 2791]POI2012 Rendezvous
- JVM(三)
- java学习day20
- int与string互转
- XML与HTML之间的点点滴滴
- AsyncTask下载图片
- Vim快速选中、删除、复制引号或括号中的内容