可能重复:
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)
有人知道可能导致这种情况的原因吗?提前谢谢。
完整源代码的链接:
答案 0 :(得分:2)
您是否尝试使用LAN内的公共IP地址连接到自己的服务器?对于大多数SoHo路由器,端口转发仅适用于WAN到LAN,而不适用于LAN到LAN。您正在寻找的是“发夹NAT”,许多SoHo路由器都没有这样做。要从LAN内部访问服务器,请使用其内部IP地址,而不是其公共IP地址。