我編寫了一個簡單的java tcp客戶端。我每次運行客戶端時都會在命令行上指定服務器IP地址。java.net.NoRouteToHostException引發嘗試訪問客戶端的* same *子網上的非現有主機
如果沒有服務器監聽指定的IP地址或IP地址不存在,一個SocketTimeoutException提高。這適用於客戶端運行的子網之外的任何IP地址。如果我在客戶端的相同子網上指定了錯誤的服務器IP地址,則會引發java.net.NoRouteToHostException。
這對我來說很奇怪。將兩個地址歸屬於同一個子網,絕對不需要爲了到達服務器而具有IP路由。如果服務器位於與客戶端不同的子網上,並且運行客戶端的主機沒有默認網關,則情況會如此。
我想即使是簡單地收到一個SocketTimeoutException爲錯誤的地址在客戶端的同一子網什麼(我的意思是,其上有沒有監聽的服務器或不存在的地址,地址)。
我該如何獲得這種行爲?
謝謝
明白了,謝謝澄清。順便說一句,我認爲這個例外是有點誤導性的,因爲雖然我有一條默認路由,但它被引發了。 – pastoreerrante