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

mie

 
 
 

日志

 
 

如何测试网络套接字的有效性  

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

  下载LOFTER 我的照片书  |

如何测试网络套接字的有效性?

        对于已经连接的套接字,可以使用getsockname或者getpeername,如果套接字已经被关闭或者连接中断,系统应该会反馈一个错误码,而函数调用也将失败。

        对于尚未连接的套接字,可以使用getsockopt之类的函数。如果不是有效的套接字句柄,这种调用必然失败。

 

20100709补充:

        两种方法都不能检测出套接字连接的有效性。一种可能的极端情况:服务器accept接受了客户端连接,而服务器端还没有把客户端连接的套接字加入到指定的网络模型,例如:poll模型。而此时,客户端忽然关闭了连接,也就是客户端正在试图攻击服务器。之后,服务器将套接字加入到网络IO模型中,但是,很可能再也无法得到这个套接字相关的事件通知了,因为此前的事件通知没有被服务器及时处理!

        而如果客户端运行的是DoS程序,大量的有害连接阻塞服务器,这种情况更容易发生,之后服务器资源将很快被消耗殆尽。

        所以,一方面,上面的方法不保险,另外一方面,服务器的处理存在问题(参看:http://zhanyonhu.blog.163.com/blog/static/16186044201069105623817/)。

 

       个人观点,供参考。

By:zhanyonhu

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

历史上的今天

在LOFTER的更多文章

评论

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

页脚

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