2012-03-04 319 views
0

Possible Duplicate:
Java sockets - java.net.ConnectException: Connection refused: connect的Java套接字错误:java.net.ConnectException:连接被拒绝:连接

我已经创建了通信用插座一个简单的聊天程序。当我在本地主机上运行它时,一切正常。但是,当我尝试使用我的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

+0

它们在同一个子网上吗?是否有任何网络设备可能会阻止该端口?如何在服务器上的本地防火墙?或TCP包装?你可以telnet到本地主机的端口,还是只是应用程序? – nsfyn55 2012-03-04 17:52:01

+0

请不要转发问题。 – 2012-03-04 17:58:04

回答

2

你想从你的局域网内连接到使用公共IP地址你自己的服务器?对于大多数SoHo路由器,端口转发仅适用于广域网到局域网,而不是局域网到局域网。你在找什么叫做“发夹式NAT”,许多SoHo路由器都不这样做。要从您的LAN内部访问您的服务器,请使用其内部IP地址,而不是其公共IP地址。

+0

谢谢,我会把客户端发给朋友,看他们是否可以连接。 – user1248420 2012-03-04 17:55:38

+0

你说得对!非常感谢:D – user1248420 2012-03-04 18:01:01

+0

这是问题所在。由于服务器绑定到'0.0.0.0'(因为在服务器代码中没有指定IP地址),只需要连接到'localhost'(或本地专用网络上的机器IP地址)客户端在本地机器上。 – 2012-03-04 18:01:18

相关问题