1

这是我的 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();
        }

    }

}
4

2 回答 2

2

你的问题有很多问题。

1)您上面的代码无法通过电话互联网连接(UMTS、GMRS)工作,因为它使用了为专用网络保留的 IP 池中的 IP

2.) 确保您的 Android 设备和您的服务器在同一个网络中。路由器经常将 WiFi/WLAN 设备放入不同的网络(子网)。即当 WLAN 被分配并具有 IP 地址时, LAN 设备可以获得192.168.1.0/255.255.255.128的范围来自。192.168.1.1 to 192.168.1.126192.168.1.128/255.255.255192.168.1.129 to 192.168.1.254

3.) 如果您使用有根的 Android 设备,您可能正在使用 Android 防火墙。在这种情况下,您必须允许应用程序使用 WiFi 连接。

4.) Windows/PC 防火墙。如果您运行 Windows 或 PC 防火墙,请确保防火墙能够接受端口 80 上的传入连接

在这种情况下,您的 Android 设备将位于不同的网络中,您必须在路由器中添加新路由。或者,您可以将路由器配置为对 WLAN 和 LAN 使用相同的 IP 池。

于 2013-08-16T17:36:44.760 回答
0

你的电脑和手机在同一个网络吗?因为 192.168.1.7 是本地 IP,所以它可能在您的模拟器中工作。但是,如果手机在不同的网络上,它将无法正常工作。

于 2013-08-16T17:39:23.043 回答