Android TCP / IP客户端无法在真实设备上运行

时间:2013-08-16 16:33:53

标签: java android sockets tcp

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

    }

}

2 个答案:

答案 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,因此它可能在您的模拟器中有效。但如果移动设备位于不同的网络上,它就无法工作。