解决time_wait强制关闭socket

所属分类: 实用技巧 / 应用技巧 阅读数: 1273
收藏 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消息批评指正。
更多精彩内容其他人还在看

遇到删不掉的文件的处理分析

大家是否有这样的经历:在删除某个文件时,系统会给出各种各样的提示,反正就是死活不让删。
收藏 0 赞 0 分享

比较详细的WinXP故障恢复控制台完全手册第1/2页

Windows 故障恢复控制台的功能是帮助基于 Windows 的计算机在未正确启动或根本无法启动时进行恢复操作。
收藏 0 赞 0 分享

vmt的修改之正则(桂军)

原来的vmt在(ssi)的时候有问题,今天看了一下代码发到群中
收藏 0 赞 0 分享

Windowns Diskpart下合并分区的方法dos下

非常不错的合并分区的方法,经测试,好用,就是对于稳定性就不知道了,理论下应该没什么问题,对于个人电脑合并分区和服务器分区合并来说,无疑是一个非常好的办法
收藏 0 赞 0 分享

合并分区之利用软件篇

一般分区合并工具一般就比较常见的两个Acronis Disk Director Suite和pQmagic但,这两个需要在电脑旁边,而服务器我推荐看上一篇文章
收藏 0 赞 0 分享

IE浏览器打不开PNG格式图片的解决

具体症状是:以IE为核心的浏览器包括ie都打不开png格式的网页图片,如果以纯链接打开网络png图片则提示下载或无法打开。
收藏 0 赞 0 分享

在电脑城混了三年了装机心得

在电脑城混了三年了,写一下对装机的心得。
收藏 0 赞 0 分享

Win2003的服务器修改默认上传200k和下载4M的限制

Win2003的服务器修改默认上传200k和下载4M的限制
收藏 0 赞 0 分享

几步轻松解决打不开IE链接

几步轻松解决打不开IE链接
收藏 0 赞 0 分享

分区软件PartitionMagic的使用方法(images)及注意事项

分区软件PartitionMagic的使用方法(images)及注意事项
收藏 0 赞 0 分享
查看更多