我正在尝试在笔记本电脑和Android之间建立Socket连接。
我正在将笔记本电脑作为服务器。为了建立连接,我正在使用ipconfig
(运行Windows 7)所示的笔记本电脑的IP(这个地址与'whatismyip'等网站所示的地址不同)。
当我将笔记本电脑和Android连接到同一个无线路由器并且使用ipconfig给出的地址时,工作正常。
但是,当我使用Android的EDGE连接并访问相同的IP地址时,Socket连接请求被拒绝。此外,whatismyip给出的IP对WLAN或EDGE都不起作用。
我听说有两个IP地址,内部和外部。我想ipconfig给出的地址是内部地址。此外,还有一些称为端口转发的过程。
有人可以帮我通过EDGE连接访问ServerSocket吗?我应该使用哪种IP,如果我需要进行端口转发,怎么办呢? 感谢。
答案 0 :(得分:2)
在您的笔记本电脑上,当您运行ipconfig命令时,它在您连接到路由器的任何接口上显示的IP地址是私有地址(不是可路由地址)。 whatismyip显示的IP地址是分配给调制解调器的IP地址。当您的手机通过Wi-Fi连接到路由器时,您与笔记本电脑位于同一子网内,并且可以创建连接。当您在EDGE网络上时,您位于不同的子网上,并且由于您的笔记本电脑的IP不可路由,因此您无法连接到它。在大多数路由器上,您可以将目标端口的所有入口流量配置为发送到您的笔记本电脑。每个路由器的配置各不相同,但想法是一样的。您要将此流量转发到的IP地址是您的笔记本电脑的私有IP地址(ipconfig显示的IP地址),并且该端口是您要发送的流量的目的地。