1. 程式人生 > >解決 Address already in use: connect 的錯誤?

解決 Address already in use: connect 的錯誤?

編輯器載入中...Java版C/S程式,作壓力測試的時候發現當客戶端連續建立連線一段時間後報 Address already in use : connect ...... 亂七八糟一堆異常 再嘗試建立連線已經連不上了,通過 netstat -a 命令檢視,有一大堆狀態為 TIME_WAIT 的佔用連線不被釋放 網上查到很多這類問題解決辦法 問題原因: Java的 Socket.close() 並不能立即釋放連線,會造成一段時間內 TIME_WAIT 的狀態 作業系統可供使用的連線數有預設限制,很快會被佔滿 解決辦法 1. Tomcat中Connector配置裡增加輔助引數(經驗證無效) Xml程式碼 2. 修改作業系統登錄檔(經驗證能夠解決問題) 1、開啟登錄檔:regedit 2、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\TCPIP\Parameters 3、新建 DWORD值,name:TcpTimedWaitDe,value:30(十進位制) –> 設定為30秒,預設是240秒 4、新建 DWORD值,name:MaxUserPort,value:65534(十進位制) –> 設定最大連線數65534 5、重啟系統