解决time_wait强制关闭socket

所属分类: 实用技巧 / 应用技巧 阅读数: 1348
收藏 0 赞 0 分享
解决time_wait
今天我在测试代码的时候,边开边看电影,服务端的CPU消耗和内存使用让我挺满意的

可是过了一会,在统计达到了一定连接后,后来连接很多无法登陆。象上公交车,拥

挤不堪无法上车,用netstat -an查看了下连接状态,time_wait状态的端口非常多

原因就在此了,消耗完系统的端口数,服务端将就无法接收新连接,找到问题就来说明

time_wait,这个东西默认存活时间为2分钟,够长的,这点很要命,更多的大家百度下

对付这个问题,我写了一个函数,强制关闭socket,代码环境{delphi7+windows xp}
PS:只会点pascal,其他不熟。

function ForceCloseSocket(DestSock:TSocket):Boolean;
var
  NoWait:Boolean;
  NLinger:Tlinger;
begin
  Result:=False;
  NoWait:=False;
  if SetSockOpt(DestSock,SOL_SOCKET,SO_DONTLINGER,@NoWait,sizeOf(Boolean))=SOCKET_ERROR then
    Result:=False;
  NLinger.l_onoff:=1;
  NLinger.l_linger:=0;  
  if SetSockOpt(DestSock,SOL_SOCKET,SO_LINGER,@NLinger,sizeOf(NLinger))=SOCKET_ERROR then
    Result:=False else Result:=True;
  if CloseSocket(DestSock)=SOCKET_ERROR then Result:=Flase else Result:=True;
end;

Dz编辑器真是头大,麻烦,这个是强制关闭函数,一点心得,与大家分享下,欢迎PM消息批评指正。
更多精彩内容其他人还在看

如何设置一个严格30分钟过期的Session示例介绍

SESSION和COOKIE是每个面试官必问的知识点,下面为大家介绍下如何设置一个严格30分钟过期的Session,具体示例如下,感兴趣的朋友可以参考下哈,希望对大家有所帮助
收藏 0 赞 0 分享

禁用Cookie三种方法(保护你的隐私)

cookie的作用很多人都知道——cookie里面保存着我们所浏览过的网页的记录,为了安全起见下面为大家介绍禁用Cookie的三种方法,感兴趣的朋友可以参考下哈
收藏 0 赞 0 分享

URL中井号的作用介绍

URL中的井号(#)是比较常见的,下面就为大家介绍一些有关井号的故事,感兴趣的朋友可以了解下
收藏 0 赞 0 分享

访问Excel的几种方式介绍

本文将为大家介绍下访问Excel的几种方式:通过OLEDB方式、通过Microsoft.Office.Interop.Excel访问及其他相关等等,感兴趣的朋友可以参考下,希望对大家有所帮助
收藏 0 赞 0 分享

HttpClient抓取网页的两种方式

可以利用NodeFilter对网页进行分析及利用Visitor对网页进行分析实现抓取网页,具体如下感兴趣的朋友可以参考下,希望对大家有所帮助
收藏 0 赞 0 分享

EditPlus 3设置字体大小(附图)

EditPlus3是我们经常使用的编辑工具,至于如何设置字体大小的问题,有很多朋友在问,下面有个不错教程,大家可以感受下
收藏 0 赞 0 分享

GHOST删除分区和修复硬盘坏扇区不仅仅是备份还原

如果你只是用GHOST来备份和还原数据的话,那你可委屈了这款“功能强大”的软件了。其实GHOST还有一些比较另类的功能,接下来为大家介绍下GHOST删除分区和修复硬盘坏扇区
收藏 0 赞 0 分享

Cookie的使用之保存与获取代码示例

比较实用的设置Cookie和获取Cookie方法,下面的示例大家可以参考下,希望对大家有所帮助
收藏 0 赞 0 分享

sharepoint 2010版本图文安装教程

这篇文章主要为大家详细介绍了Microsoft Share Point2010中文版图文安装的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Chrome开发者工具9个调试技巧详解

对于我们前端开发者来说,Chrome自带的开发者工具绝对是不可或缺的调试工具,我们常用的调试方法包含一些console等,而Chrome自带的开发者工具其实很强大,下面我们来聊聊一些你可能不知道的使用方法。
收藏 0 赞 0 分享
查看更多