2012-12-19 133 views
4

我想在我的笔记本电脑和我的Android之间建立一个Socket连接。拒绝套接字连接请求

我把笔记本作为服务器。要建立连接,我使用的是笔记本电脑的IP,如ipconfig(运行Windows 7)所示(此地址与'whatismyip'等网站显示的地址不同)。

当我将笔记本电脑和Android连接到相同的无线路由器并使用ipconfig给定的地址时,情况正常。

但是,当我使用我的Android的EDGE连接并访问相同的IP地址时,Socket连接请求被拒绝。另外,whatismyip给出的IP不能用于WLAN或EDGE。

我听说有两个IP地址,内部和外部。我想ipconfig给出的地址是内部地址。此外,还有一些过程称为端口转发。

有人可以帮助我通过EDGE连接访问ServerSocket吗?我应该使用哪个IP,如果需要进行端口转发,那该怎么办? 谢谢。

+1

这属于http://superuser.com或android特定用户问答网站(http://android.stackexchange.com/)。这不是一个*编程*问题。 –

+0

但是android连接部分不是问题,相反,如果我尝试连接到正确的IP地址或端口转发等,我认为它会正常工作.. :) –

+0

选择正确的IP地址主要是知道问题这是放入你的应用程序的配置文件(或其他)的权利。端口转发是在Android系统的iptables中实现的。这些都与编程无关......因此这个问题是无关紧要的。 –

回答

2

在您的笔记本电脑上,当您运行ipconfig命令时,它显示在您连接到路由器的任何接口上的IP地址都是私有地址(不是可路由地址)。 whatismyip显示的IP地址是分配给您的调制解调器的IP地址。当您的手机通过Wi-Fi连接到路由器时,您与笔记本电脑位于同一子网中,并且可以创建连接。当您在EDGE网络上时,您位于不同的子网上,并且由于您的笔记本电脑的IP不可路由,所以无法连接到它。在大多数路由器上,您可以将目标端口的所有入口流量配置为发送到您的笔记本电脑。这个配置对于​​每个路由器都有所不同,但这个想法是相同的。您希望将此流量转发到的IP地址是您的笔记本电脑的专用IP地址(由ipconfig显示的IP地址),并且该端口是指您要发送的流量的端口。

+0

+1这被称为端口转发 –