国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 課堂 > 基礎知識 > 正文

解決time_wait強制關閉socket

2020-10-28 20:14:12
字體:
來源:轉載
供稿:網友
解決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消息批評指正。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 吉木乃县| 和政县| 交口县| 武定县| 鄂尔多斯市| 寻乌县| 三原县| 潮州市| 昌黎县| 白城市| 咸丰县| 察隅县| 东兴市| 定西市| 商洛市| 保山市| 株洲市| 祁门县| 石城县| 商都县| 屏山县| 齐河县| 邮箱| 仙居县| 永平县| 运城市| 莲花县| 武定县| 古交市| 丰顺县| 安康市| 乌海市| 白水县| 徐州市| 修水县| 大足县| 西乌| 绩溪县| 湘潭市| 株洲县| 龙泉市|