在Java中创建远程SocketServer时出现Connectiontimedout错误

时间:2015-11-11 10:45:47

标签: java sockets server

在套接字编程中,我能够连接到服务器套接字,当它在同一台PC上,即127.0.0.1但是当我在远程位置的朋友运行服务器程序并且我尝试连接到它时,它显示Connectiontimedout错误。

我正确地给出了ip地址和端口号。

我需要额外添加一些东西吗?

2 个答案:

答案 0 :(得分:1)

为了远程访问服务器,您的朋友应该将服务器绑定到可从您的计算机访问的IP地址。如果你朋友的ISP或wifi路由器已经为他分配了private IP address,情况就不是这样了。

在这种情况下,您都可以加入Virtual Private Network加入同一网络。

另一个选项是port forwarding。如果你们两个都可以访问一台普通的机器,那么你的朋友可以将一个端口从公共机器转发到应用服务器的端口到他的机器。现在,您可以通过访问公共计算机上转发端口的套接字来访问您的朋友应用程序服务器。

如果你们两个人已经在同一个网络上,那么服务器可能只在127.0.0.1接口上侦听。

答案 1 :(得分:0)

在您和朋友之间的路径中,可能还有其他中间框可以进行NAT(网络地址转换)。这些通常会阻止通过Internet启动TCP或其他连接。

尝试在同一局域网(局域网)或Hamachi VPN上同时对您进行同样的操作,以通过互联网模拟局域网。

另一种可能性是在您所在的位置配置路由器/ NAT,以将应用程序的端口转发到您计算机的IP地址。在这种情况下,请务必向您的朋友提供您的公共IP(您可以通过http://checkip.dyndns.org/获得)。