Java套接字,echo服务器

时间:2015-10-26 19:41:07

标签: java sockets

我尝试使用java套接字做一个非常基本的echo服务器,它在本地运行完美(在同一台计算机上同时运行服务器和客户端),当我尝试从另一台计算机运行客户端时,我得到了例外:

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)

2 个答案:

答案 0 :(得分:0)

正如评论中所提到的,这两台用过的计算机都挂在了两个不同的wifi供应商身上。 answer to a similar question提到可能的其他原因。

答案 1 :(得分:0)

  

我得到了例外

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

例外。这是一个设计糟糕的错误消息,隐藏异常。当您收到例外情况时,请不要显示/打印/记录您自己设计的无意义错误消息。显示/打印/记录异常本身,其消息,其类,其堆栈跟踪。< / p>

  

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

    java.net.ConnectException: Connection timed out: connect

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