我正在尝试建立到ip:端口的套接字连接,但它在我的一台计算机上工作正常。客户端首先通过套接字连接连接到服务器以进行登录;之后,它将等待来自服务器的传入连接,并且这些连接都是成功的。
但是,当我在另一台计算机上尝试时,客户端建立了第一个连接以成功登录,然后等待传入的连接。在启动连接的服务器端,我收到了这样的消息:
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)发布于 2012-08-31 23:46:36
如API中所述
表示在尝试将套接字连接到远程地址和端口时发生错误。通常,由于防火墙介入或中间路由器关闭,无法访问远程主机。
你很可能有一个防火墙或什么东西阻止了连接。如果你真的有一个,试着禁用它,看看它是如何工作的。如果它不起作用,那就是别的原因(完整的堆栈跟踪可能会有帮助,就像你问题上的评论所说的)。
发布于 2012-09-01 09:19:56
“没有到主机的路由”意味着你的主机甚至不知道如何联系目标。这是一个网络连接问题。不是防火墙问题。
https://stackoverflow.com/questions/12218648
复制相似问题