我正在嘗試通過以下代碼ping各種IP來檢查連接。java.net.ConnectException:系統缺少足夠的緩衝空間或者因爲隊列已滿
ipAdd = InetAddress.getByName(ipAddress);
boolean isConnected = ipAdd.isReachable(3000);
但我得到這個錯誤。
java.net.ConnectException: An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full
共振存在大約1000個線程同時進行此過程。我曾考慮將這些IP放在隊列中。但爲此,我想知道我可以使用的最大線程數。有什麼方法可以找出緩衝區空間,這樣我就可以計算出要運行上述代碼的同時觸發的線程數量。 除了排隊方法,我將不勝感激任何解決方案/解決方案。
你有[googled](http://blogs.msdn.com/b/sql_protocols/archive/2009/03/09/understanding-the-error-an-operation-on-a-socket-could-not因爲系統缺乏足夠的緩衝區空間或因爲隊列是full.aspx)今天? – Augusto 2012-08-13 14:41:23
我已經通過該鏈接了。我明白,它的操作系統的限制,但我做了一個sepearate程序,我在一次輕鬆打3000個IP。但在我的應用程序代碼中,它顯示了1000個線程本身的錯誤。 – rdp 2012-08-14 11:06:36
調用isReachable方法時是否打開任何連接?如果是,那麼是否需要關閉它?也讓我知道如何去做。 – rdp 2012-08-14 11:14:24