2011-08-15 46 views
0

我目前正在用java编写的服务器开发java PC/Android应用程序。当我开发PC客户端时,我在localhost:12345上启动服务器,并且客户端可以毫无问题地连接到此服务器(使用相同的主机名和端口)。昨天我尝试使用Android设备进行连接时出现了问题。我使用手机开发应用程序,并输入我的路由器公共IP 89.xx.xx.xxx和PC客户端(12345)中的相同端口作为主机地址。当然,我在我的路由器上设置了端口转发(用于端口12344到12346),并且我在Windows Defender的端口12345上为任何连接类型创建了规则。但仍然没有成功。这很奇怪,因为大约8个月之前我正在开发其他应用程序,一切正常。奇怪的是,当我第一次启动服务器和PC客户端时,没有窗口提示窗口(赢得防御者提示,允许我的应用程序连接到互联网)。我认为这是路由器转发的问题(因为在本地主机上它可以正常工作),但我不知道我还能做什么。我在转发旁打开了UPnP。我的路由器是THOMSON TWG850-4U。几秒钟后,我的android应用程序中出现超时异常端口转发问题

+0

您是否验证过您是否可以使用普通PC(不是您的Android应用程序)从外部连接到该服务器,只是为了确保问题与android设备用于连接的移动网络无关? – wollud1969

回答

0

您确定您的服务器绑定了0.0.0.0(接受任何接口上的传入连接)而不是127.0.0.1(只接受本地主机连接)吗?

+0

我在服务器套接字绑定上将localhost更改为0.0.0.0(如果这就是你的意思),但它仍然无法连接 – Zani

0

如果您已经绑定到0.0.0.0,则尝试将您的路由器设置为DMZ您的PC IP地址,看看您是否允许连接。

+0

我之前尝试过,但没有区别。 FYI我打开端口转发时,当我打开DMZ并连接我使用路由器公共IP – Zani

+0

如果您在网络上时提出这些请求您应该使用计算机LAN IP而不是路由器公共IP。 –