国产探花免费观看_亚洲丰满少妇自慰呻吟_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消息批評指正。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 枣阳市| 沙河市| 宁国市| 永年县| 嘉禾县| 图木舒克市| 噶尔县| 富顺县| 金门县| 丰顺县| 锦州市| 黔江区| 昆山市| 富平县| 西青区| 班玛县| 喀喇沁旗| 安乡县| 金昌市| 星座| 庄浪县| 射洪县| 邳州市| 兴隆县| 米易县| 崇礼县| 仙桃市| 新巴尔虎右旗| 西宁市| 资溪县| 碌曲县| 库尔勒市| 丰顺县| 平原县| 永善县| 大荔县| 大余县| 朝阳县| 上蔡县| 商洛市| 辉县市|