这是我的Android tcp客户端的一部分,它在模拟器上工作得很好,但是当它在我的三星Galaxy S3上运行时它不起作用,我确定我的手机通过wifi连接到路由器,我能得到一些吗?请帮忙
class Connect_Thread implements Runnable {
@Override
public void run() {
try {
InetAddress serverAddr = InetAddress.getByName(SERVER_IP);
socket = new Socket(serverAddr , SERVERPORT);
} catch (UnknownHostException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
答案 0 :(得分:2)
您的问题有很多问题。
1)上述代码无法通过电话互联网连接(UMTS,GMRS)运行,因为它使用的是来自为private networks保留的IP池的IP
2.确保您的Android设备和服务器位于同一网络中。路由器通常将WiFi / WLAN设备放入不同的网络(subnetwork)。即LAN设备可以192.168.1.0/255.255.255.128
的范围为192.168.1.1 to 192.168.1.126
,而WLAN分配192.168.1.128/255.255.255
且IP地址来自192.168.1.129 to 192.168.1.254
。
3。)如果您使用的是root用户设备,则可能正在使用Android防火墙。在这种情况下,您将不得不允许该应用程序使用WiFi连接。
4.。)Windows / PC防火墙。如果您运行Windows或PC防火墙,请确保防火墙能够接受端口80上的传入连接
在这种情况下,您的Android设备将位于不同的网络中,您必须在路由器中添加新路由。或者,您可以将路由器配置为对WLAN和LAN使用相同的IP池。
答案 1 :(得分:0)
您的电脑和手机是否在同一个网络上?因为,192.168.1.7是本地IP,因此它可能在您的模拟器中有效。但如果移动设备位于不同的网络上,它就无法工作。