2010-02-03 77 views
1

根據太陽對ServerSocket的文檔:爪哇插座接受隊列長度

傳入連接指示的最大隊列長度(連接請求)如果連接指示到達被設置爲50時,隊列是完整,連接被拒絕。

如何增加隊列長度?這是我服務器的瓶頸。

謝謝。

回答

2

使用ServerSocket constructorbacklog參數。

您可能還想考慮使用線程池(或者真的是ExecutorService)來分派傳入的請求。取決於你如何構建它,這通常會導致更好的吞吐量。

2

使用構造函數的參數backlogJavadoc)。請記住,儘管如此,您將無法增加超過操作系統限制的隊列。這是爲了防止SYN攻擊 - 請參閱此article以獲取更多信息。

0

ServerSocket還有另一個構造函數。

public ServerSocket(int port, int backlog) 

其中backlog是所需的連接隊列大小。最大50只適用於需要的默認構造函數int port

0

要限制連接被拒絕,請確保在執行該輪詢的任何發送/接收處理之前,處理每個選擇輪詢的所有連接請求。