Java套接字“;连接超时:connect";
我正在Windows 7机器上的端口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
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看到这一点