Java套接字错误:java.net.ConnectException:连接被拒绝:连接

时间:2012-03-04 17:50:38

标签: java sockets networking tcp

  

可能重复:
  Java sockets - java.net.ConnectException: Connection refused: connect

我创建了一个简单的聊天程序,它使用套接字进行通信。当我在localhost上运行时,一切正常。但是,当我尝试使用我的IP链接客户端和服务器程序时会出现问题。

http://www.canyouseeme.org/可以通过端口9999连接到我的服务器,所以我知道服务器正常,端口已打开。但是,我的客户端无法连接。

错误日志......

java.net.ConnectException: Connection refused: 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 Client.connect(Client.java:129)
at Client.main(Client.java:47)

有人知道可能导致这种情况的原因吗?提前谢谢。

完整源代码的链接:

http://pastebin.com/2XftHtn9

1 个答案:

答案 0 :(得分:2)

您是否尝试使用LAN内的公共IP地址连接到自己的服务器?对于大多数SoHo路由器,端口转发仅适用于WAN到LAN,而不适用于LAN到LAN。您正在寻找的是“发夹NAT”,许多SoHo路由器都没有这样做。要从LAN内部访问服务器,请使用其内部IP地址,而不是其公共IP地址。