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

解決 httpclient 下 Address already in use: connect 的錯誤

sim 會有 連接 如果 http cli eth 停止 nag

最近做httpclient做轉發服務,發現服務器上總是有很多close_wait狀態的連接,而且這些連接都不會關閉,最後導致服務器沒法建立新的網絡連接,從而停止響應。
後來在網上搜索了一下,發現解決的方法也很簡單,如果想重用連接,那就使用連接管理器,從連接管理器裏獲取連接,然後定時的用連接管理器來釋放空閑連接。httpclient自帶了SimpleHttpConnectionManager,提供了Java代碼
closeIdleConnections(long idleTimeout)

closeIdleConnections(long idleTimeout) 這樣的方法。
如果不需要重用鏈接,則直接在httpmethod創建時,設置一個http頭信息就可以了

Java代碼
httpmethod.setRequestHeader("Connection", "close");

httpmethod.setRequestHeader("Connection", "close");
這樣就不會有惱人的close_wait了。

解決 httpclient 下 Address already in use: connect 的錯誤