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

mie

 
 
 

日志

 
 

异步套接字设置超时的问题  

2010-07-28 10:29:18|  分类: 网络开发 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

异步套接字没法直接设置超时。在和服务器连接成功后,如果服务器繁忙,客户端可能迟迟无法接收到数据,导致接收等待!

据说默认的时限是2个小时,如果2个小时后,还是收不到服务器反馈的数据,连接才会关闭。事实上,2个小时后,连接也未必会关闭,因为连接不是单方面出现中断了,而是始终保持着。

目前的解决方法:

(1)客户端使用定时器,到达指定时间后,没有收到服务器反馈,认为服务器繁忙,直接反馈“连接失败”。

(2)服务器使用时限设置,防止客户端恶意的DOS攻击。

再看看有没有更好的方法。

 

20101020注:

虽然客户端或者服务器可以使用定时器或者其他方法来限定超时的时限,但是,假设时限1秒,而第二秒数据包来到。此时终端将不知道怎么处理了。因为,按照设定,这个数据包超时了,应该丢弃。而事实上,对于大并发数程序而言,很难设定某个数据包应该被丢弃,除非给数据包设置编号或者加上时间戳(TCP协议本身虽有时间戳,但上层应用程序似乎没法获得到)。

因为程序是双工的,而不是半双工之类的,所以,时限问题就变得非常麻烦。

 

暂时拟改用半双工的方式来绕过时限问题。——测试过程中已经发现无限等待的情况。 

 

By:zhanyonhu

  评论这张
 
阅读(888)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

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

页脚

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