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

标签 java sockets networking tcp

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)

有人知道这可能是什么原因造成的吗?提前致谢。

完整源代码链接:

http://pastebin.com/2XftHtn9

最佳答案

您是否尝试使用 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/

相关文章:

c# - 现有连接被远程主机强制关闭

java - 如何访问 JSON 对象的名称?

一段时间后 Android long-during TCP 套接字连接失败

Python - 如何连接到 TOR 代理

C# Http服务器使用StreamSocketListener,选项 "InputStreamOptions.Partial"返回数据不完整

c - 如果 getaddrinfo 失败一次,它将永远失败(即使在网络准备就绪之后)

java - 加宽和装箱重载

java - 包装责任链功能是否比直接将其放在类中更好?

java - Android:如何单独绘制.svg文件元素?

iphone - 从 CFHTTPMessageRef 获取原始 HTTP 请求