Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java套接字“;连接超时:connect";_Java_Sockets_Server_Router_Portforwarding - Fatal编程技术网

Java套接字“;连接超时:connect";

Java套接字“;连接超时:connect";,java,sockets,server,router,portforwarding,Java,Sockets,Server,Router,Portforwarding,我正在Windows 7机器上的端口4242上运行Java示例KnockKnockServer[1]。当我尝试使用相应的客户机进行连接时,使用127.0.0.1:4242作为服务器ip/端口,客户机连接正常。但是,如果我尝试使用我的(外部)IP地址,在等待几秒钟后会出现以下错误: 连接超时:执行时从抛出的IOException连接 final Socket kkSocket = new Socket("XXX.XXX.XXX.XXX", 4242); 当然,我事先配置了路由器(WISPR-NE

我正在Windows 7机器上的端口
4242
上运行Java示例
KnockKnockServer
[1]。当我尝试使用相应的客户机进行连接时,使用
127.0.0.1:4242
作为服务器ip/端口,客户机连接正常。但是,如果我尝试使用我的(外部)IP地址,在等待几秒钟后会出现以下错误:

连接超时:执行时从抛出的
IOException
连接

final Socket kkSocket = new Socket("XXX.XXX.XXX.XXX", 4242);
当然,我事先配置了路由器(
WISPR-NET12.44(2012年8月7日-SVN:7300)
),将端口
4242
转发到我的机器。我使用几个在线端口扫描程序测试了端口转发,例如[2]。端口扫描程序不仅告诉我端口已打开,我还在服务器控制台输出上看到客户端已连接

不幸的是,我不知道问题在哪里,甚至不知道它是否与Java有关。(因此需要使用Java示例服务器来熟悉Java服务器开发。)我非常感谢您的帮助!谢谢大家!

更新:在Win7上运行服务器时

telnet 127.0.0.1 4242在Win7上工作

telnet 192.168.1.109 4242
可以在Win7上工作,也可以在同一网络中的Macbook上工作

telnet 87.XXX.XXX.XXX 4242(外部ip)在Win7和Macbook上都不起作用,即使使用具有相同ip和端口的联机端口扫描仪也不起作用(并且服务器识别端口扫描仪已连接)

[1]


[2]

看起来像是防火墙问题我尝试停用/激活默认的Win7防火墙,但没有解决问题。路由器,我不知道我会在配置中改变什么,除了端口转发,根据在线端口扫描器,它似乎可以工作。你会说是路由器还是Win7防火墙?我在路由器中发现的唯一东西是一个“SPI防火墙”,我启用/禁用了它,但没有帮助。我想到的是Windows的防火墙。您是否尝试从同一网络上的其他计算机连接到您的服务?我尝试将服务器安装在Macbook Pro上,并从Win7连接到它(反之亦然),但它就是不起作用…./(连接超时)您的服务器是否在0.0.0.0:4242上侦听,而不是在127.0.0.1:4242上侦听?您可以通过netstat看到这一点