注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

还东国的博客

行之苟有恒,久久自芬芳

 
 
 

日志

 
 

设置客户端CONNECT连接时长的方法  

2014-05-28 15:50:09|  分类: 网络服务编程技术 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
设置客户端CONNECT连接时长的方法
因为在LINUX上的版本的差异性,导致异步的非阻塞的方法是无法通用,所以就涉及到一个问题,如何设置CONNECT的时间问题,因为毕竟一个CONNECT耗时75秒确实也令人非常的郁闷。这时候在网上找

一个方法:
struct timeval timeo = {3, 0};//将连接时长改成3秒。
socklen_t len = sizeof(timeo);
_fd = socket(AF_INET, SOCK_STREAM, 0);
if (argc == 4)
timeo.tv_sec = atoi(argv[3]);
setsockopt(_fd, SOL_SOCKET, SO_SNDTIMEO, &timeo, len);
这个东西应用到了程序中进行了一把测试,结果很喜剧:
第一种情况下,程序大约按照指定的时长返回,很好。
第二种情况,结果程序无论如何延时都没有什么作用,基本上都在3秒钟左右退出,到后来干脆就直接返回,没有等待时间。
第三种情况,这种就得考虑第二情况为什么会是这样,第一种时候为什么又可以,会不会是设置了这个参数后,影响了什么,后来想了个方法,换一个地址,结果发现又正常了。后来反复测了几下,

如果你的程序在一个IP地址上可以连接上又断开,那么返回就比较快,一个不能连接的新地址,需要的时间可能就会长一些。
因此总结出来的结果就是:这种设置连接时长的方法,是最长值,而不一定是必然值。
  评论这张
 
阅读(325)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017