手机
当前位置:查字典教程网 >网页设计 >应用技巧 >解决time_wait强制关闭socket
解决time_wait强制关闭socket
摘要:解决time_wait今天我在测试代码的时候,边开边看电影,服务端的CPU消耗和内存使用让我挺满意的可是过了一会,在统计达到了一定连接后,后...

解决time_wait

今天我在测试代码的时候,边开边看电影,服务端的CPU消耗和内存使用让我挺满意的

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

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

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

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

对付这个问题,我写了一个函数,强制关闭socket,代码环境{delphi7+windowsxp}

PS:只会点pascal,其他不熟。

functionForceCloseSocket(DestSock:TSocket):Boolean;

var

NoWait:Boolean;

NLinger:Tlinger;

begin

Result:=False;

NoWait:=False;

ifSetSockOpt(DestSock,SOL_SOCKET,SO_DONTLINGER,@NoWait,sizeOf(Boolean))=SOCKET_ERRORthen

Result:=False;

NLinger.l_onoff:=1;

NLinger.l_linger:=0;

ifSetSockOpt(DestSock,SOL_SOCKET,SO_LINGER,@NLinger,sizeOf(NLinger))=SOCKET_ERRORthen

Result:=FalseelseResult:=True;

ifCloseSocket(DestSock)=SOCKET_ERRORthenResult:=FlaseelseResult:=True;

end;

Dz编辑器真是头大,麻烦,这个是强制关闭函数,一点心得,与大家分享下,欢迎PM消息批评指正。

【解决time_wait强制关闭socket】相关文章:

破解电信检测,突破多用户共享上网补丁包下载

用好windows自带的“虚拟光驱”之subst命令

设计软件中的系统字体应用小技巧

将你的Windows XP专业版改造成媒体中心版的方法

Ghost8.0详细使用方法与命令行参数

给IE 7添加任意搜索引擎

让你的ewbeditor也能运行代码

任务栏里的显示桌面丢失了的解决方法

十个习惯让你精通新的开发技术

PHP图片转换通 v1.0可以将图片转换为php代码的绿色软件

精品推荐
分类导航