Possible Duplicate:
Java sockets - java.net.ConnectException: Connection refused: connect
我创建了一个使用套接字进行通信的简单聊天程序。当我在本地主机上运行它时,一切正常。但是,当我尝试使用我的 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)
有人知道这可能是什么原因造成的吗?提前致谢。
完整源代码链接:
最佳答案
您是否尝试使用 LAN 内部的公共(public) IP 地址连接到您自己的服务器?对于大多数 SoHo 路由器,端口转发仅适用于 WAN 到 LAN,不适用于 LAN 到 LAN。您正在寻找的称为“发夹 NAT”,而许多 SoHo 路由器并不这样做。要从 LAN 内部访问您的服务器,请使用其内部 IP 地址,而不是其公共(public) IP 地址。
关于Java套接字错误: java.net.ConnectException:连接被拒绝:连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9557343/