我試圖建立一個套接字連接到一個ip:port,並且它在我的一臺計算機上正常工作。客戶端首先使用套接字連接連接到服務器以登錄;之後它期望來自服務器的傳入連接,並且它們是成功的。嘗試套接字連接時出現Java異常
但是,當我在另一臺計算機上嘗試它時,客戶端首次連接登錄成功,然後等待傳入連接。在服務器端,其中連接將被啓動,我得到這個消息:
java.net.NoRouteToHostException
和傳入的連接失敗。
爲什麼會發生這種情況?它可能是防火牆問題嗎?
s = new Socket(id, 4446);
BufferedWriter out1 = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
BufferedReader in1 = new BufferedReader(new InputStreamReader(s.getInputStream()));
這就是46個線
java.net.NoRouteToHostException: No route to host: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(Unknown Source)
at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at sample_server.doComms.run(doComms.java:46)
at java.lang.Thread.run(Unknown Source)
添加代碼是沒有意義的,這是太複雜,它不聽起來像一個源代碼的問題,因爲它成功在一個系統上 – Evan
這可能是網絡問題。你可以從第二個主機ping服務器,反之亦然? – arturo
顯示你如何連接套接字(而不是你的整個代碼)的代碼,給出任何涉及的主機名和/或IP地址以及完整的堆棧跟蹤。 –