欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解決time_wait強(qiáng)制關(guān)閉socket

 更新時(shí)間:2007年12月11日 21:24:53   作者:  
解決time_wait
今天我在測(cè)試代碼的時(shí)候,邊開(kāi)邊看電影,服務(wù)端的CPU消耗和內(nèi)存使用讓我挺滿意的

可是過(guò)了一會(huì),在統(tǒng)計(jì)達(dá)到了一定連接后,后來(lái)連接很多無(wú)法登陸。象上公交車(chē),擁

擠不堪無(wú)法上車(chē),用netstat -an查看了下連接狀態(tài),time_wait狀態(tài)的端口非常多

原因就在此了,消耗完系統(tǒng)的端口數(shù),服務(wù)端將就無(wú)法接收新連接,找到問(wèn)題就來(lái)說(shuō)明

time_wait,這個(gè)東西默認(rèn)存活時(shí)間為2分鐘,夠長(zhǎng)的,這點(diǎn)很要命,更多的大家百度下

對(duì)付這個(gè)問(wèn)題,我寫(xiě)了一個(gè)函數(shù),強(qiáng)制關(guān)閉socket,代碼環(huán)境{delphi7+windows xp}
PS:只會(huì)點(diǎn)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編輯器真是頭大,麻煩,這個(gè)是強(qiáng)制關(guān)閉函數(shù),一點(diǎn)心得,與大家分享下,歡迎PM消息批評(píng)指正。

相關(guān)文章

最新評(píng)論