2009-10-29 59 views
1

有時(很少)當我連接到com.sun.net.httpserver.HttpServer的正在運行的實例時,我收到「連接被拒絕」消息。com.sun.net.httpserver.HttpServer最大連接數?

有人知道這可能是爲什麼嗎?是否有線程限制它可以處理的連接數量?我可以增加它嗎? 謝謝。 -r

回答

2

從:

當綁定到一個地址和端口號 ,應用程序也 可以指定一個整數積壓參數。 這代表 系統將在內部排隊的傳入TCP連接的最大數量。 連接正在排隊,而它們是 正在等待 HttpServer接受。達到限制時, 其他連接可能會被 底層TCP實施拒絕 (或可能被忽略)。設置 右邊的積壓值是 在TCP層使用有效資源 (未設置它太高)和允許足夠的 傳入請求(不是 設置太低)之間的折中。

您可能會看到此內容。

或者,你有沒有設置執行者使用setExecutor()。缺省執行程序可能配置的線程數少於您的需要,並且可以適當配置ThreadPoolExecutor

+0

setExecutor - 非常感謝你 - 想知道默認配置是什麼... [像往常一樣,與「使用默認實現」的java文檔] – rogerdpack

+0

我剛剛在兩個版本的OpenJDK上經歷了不同的默認行爲(Ubuntu 12.04和ArchLinux--「1.7.0_21」vs「1.7.0_15」):在Ubuntu上它按預期工作,但在ArchLinux上默認顯然是單線程的?設置Executor使用線程池解決了這個問題。 – Joseph