解決time_wait強制關(guān)閉socket
更新時間:2007年12月11日 21:24:53 作者:
解決time_wait
今天我在測試代碼的時候,邊開邊看電影,服務(wù)端的CPU消耗和內(nèi)存使用讓我挺滿意的
可是過了一會,在統(tǒng)計達到了一定連接后,后來連接很多無法登陸。象上公交車,擁
擠不堪無法上車,用netstat -an查看了下連接狀態(tài),time_wait狀態(tài)的端口非常多
原因就在此了,消耗完系統(tǒng)的端口數(shù),服務(wù)端將就無法接收新連接,找到問題就來說明
time_wait,這個東西默認存活時間為2分鐘,夠長的,這點很要命,更多的大家百度下
對付這個問題,我寫了一個函數(shù),強制關(guān)閉socket,代碼環(huán)境{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編輯器真是頭大,麻煩,這個是強制關(guān)閉函數(shù),一點心得,與大家分享下,歡迎PM消息批評指正。
今天我在測試代碼的時候,邊開邊看電影,服務(wù)端的CPU消耗和內(nèi)存使用讓我挺滿意的
可是過了一會,在統(tǒng)計達到了一定連接后,后來連接很多無法登陸。象上公交車,擁
擠不堪無法上車,用netstat -an查看了下連接狀態(tài),time_wait狀態(tài)的端口非常多
原因就在此了,消耗完系統(tǒng)的端口數(shù),服務(wù)端將就無法接收新連接,找到問題就來說明
time_wait,這個東西默認存活時間為2分鐘,夠長的,這點很要命,更多的大家百度下
對付這個問題,我寫了一個函數(shù),強制關(guān)閉socket,代碼環(huán)境{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編輯器真是頭大,麻煩,這個是強制關(guān)閉函數(shù),一點心得,與大家分享下,歡迎PM消息批評指正。
相關(guān)文章
Realtek HD Audio Driver安裝失敗的解決方法
今天是郁悶慘了,先是電腦由于ntoskrnl.exe文件丟失或損壞迫使我重裝系統(tǒng),重裝系統(tǒng)后又出現(xiàn)聲卡驅(qū)動無法安裝,安裝若干遍聲音驅(qū)動都提示“安裝Realtek HD Audio Driver失敗”,然后整個電腦就變成一個無聲系統(tǒng)。2008-08-08
終于發(fā)現(xiàn)了鼠標關(guān)機后仍然發(fā)光的原因了與關(guān)閉鍵盤鼠標開機功能的方法
終于發(fā)現(xiàn)了鼠標關(guān)機后仍然發(fā)光的原因了與關(guān)閉鍵盤鼠標開機功能的方法...2007-10-10
常用字符集編碼詳解(ASCII GB2312 GBK GB18030 unicode UTF-8)
字符常用的編碼,大家可以認識下以后就可以方便確定用什么編碼了2008-12-12
重現(xiàn) Office 2007 中的菜單和工具欄的方法
重現(xiàn) Office 2007 中的菜單和工具欄的方法...2007-05-05
關(guān)于Google域名的自動轉(zhuǎn)向問題
關(guān)于Google域名的自動轉(zhuǎn)向問題...2007-04-04
Visual Style中的shellstyle.dll文件修改方法
Visual Style中的shellstyle.dll文件修改方法...2007-05-05

