linux和windows下用setsockopt设置SO_SNDTIMEO,SO_RCVTIMEO的参数的一点区别
来源:互联网 发布:数据新闻的重要性 编辑:程序博客网 时间:2024/05/20 20:45
linux和windows下用setsockopt设置SO_SNDTIMEO,SO_RCVTIMEO的参数的一点区别
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));
UDP的socket在某些情况:如对方关闭时,本地可能sendto不出去数据,然后recvfrom就会被阻塞,这时就需要设置 这两个参数的值提高程序质量。
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));
而solaris,则不支持。
- linux和windows下用setsockopt设置SO_SNDTIMEO,SO_RCVTIMEO的参数的一点区别
- linux和windows下用setsockopt设置SO_SNDTIMEO,SO_RCVTIMEO的参数的一点区别
- linux和windows下用setsockopt设置SO_SNDTIMEO,SO_RCVTIMEO的参数的一点区别
- linux和windows下用setsockopt设置SO_SNDTIMEO,SO_RCVTIMEO的参数的一点区别
- winsock下与linux下setsockopt(SO_SNDTIMEO,SO_RCVTIMEO)的区别
- winsock下与linux下setsockopt(SO_SNDTIMEO,SO_RCVTIMEO)的区别
- linux和windows下用setsockopt设置send(), recv() 超时的参数的一点区别
- linux和windows下用setsockopt设置send(), recv() 超时的参数的一点区别
- setsockopt中SO_RCVTIMEO和SO_SNDTIMEO
- SO_SNDTIMEO和SO_RCVTIMEO
- linux网络编程二十:socket选项:SO_RCVTIMEO和SO_SNDTIMEO
- 【Linux】正确使用SO_RCVTIMEO和SO_SNDTIMEO套接口选项
- Linux与windows下setsockopt的一点差异
- Linux和windows下socket编程的一点区别
- linux和windows下socket编程的一点区别
- ping linux和windows下的参数与区别
- Socket Linux和Windows下的区别
- Windows和Linux下socket的区别
- Android NDK 学习小结
- java 各种类型数据,集合对象封装 成json
- C中的数学函数及其用法举例大全
- Dragon, Fly:别玩小鸟了,玩小龙吧
- 3.3.3Ext.form.ComboBox -动态绑定数据库
- linux和windows下用setsockopt设置SO_SNDTIMEO,SO_RCVTIMEO的参数的一点区别
- 关于level_idc和Profile_IDC的解释
- SQL语句的增删改查(详细)
- 进制转换工具
- 用eclipse创建WebService Step by Step
- equals的用法
- MyBatis入门实例 ——configuration.xml
- 基于Android NDK的学习之旅-----序言
- 序列化中的继承问题