2015-10-26 90 views
1

我试图做一个非常基本的回声服务器使用Java套接字,它完美地在本地工作(在同一台计算机上同时运行服务器和客户端),当我尝试从另一台计算机运行客户端我得到异常:Java套接字,回声服务器

Couldn't get I/O for the connection to XXX.XXX.XX.X 

XXX.XXX.XX.X是本机的IP服务器在其上运行

BTW:我的代码在服务器和客户端都大致是的oracle初学者教程: server client

编辑: 完整的堆栈跟踪我得到:

java.net.ConnectException: Connection timed out: connect at java.net.DualStackPlainSocketImpl.connect0(Native Method) at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source) at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source) at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source) at java.net.AbstractPlainSocketImpl.connect(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 sockets.Client.main(Client.java:16)

+0

端口是否打开并且未被防火墙阻止? – Kayaman

+0

你能从客户端机器ping通服务器机器吗? – RealSkeptic

+0

我想是这样,因为我用它来本地测试?或没有 ?? – isco

回答

0

我得到的异常

Couldn't get I/O for the connection to XXX.XXX.XXX.XXX 

也就是说例外。这是一个设计不佳的错误消息,隐藏了的例外。当你得到一个异常时,不要显示/打印/记录你自己设计的无意义的错误信息。显示/打印/记录异常本身,其消息,其类,它的堆栈跟踪。

编辑:完整的堆栈跟踪我得到:

java.net.ConnectException: Connection timed out: connect 

没错。这是真正的例外,它几乎肯定意味着有一个防火墙阻止您进行所需的连接。

0

正如在评论中提到的,两个旧电脑大呼过瘾两个不同的无线网络供应商。 answer to a similar question提到可能的其他原因。