0

我有一个工作代码,我可以在其中在 pc 和 android 模拟器之间交换数据。现在,我想用真正的 android 设备测试这个应用程序。即我想在我有java 服务器的pc 和android 手机之间交换文本。对于我的模拟器,我使用的是模拟器虚拟 IP 地址,它工作正常。但是,为了在手机中测试我的应用程序,我将手机和电脑连接在同一个网络中,并在我的应用程序中使用了手机的 IP 地址。然后我在手机中安装了应用程序,但没有建立连接。如何在代码中进行其他更改以在手机中使用此应用程序。这是我的android代码,

try {
        client = new Socket("123.236.165.50", 9999);
        printwriter = new PrintWriter(client.getOutputStream(), true);
        printwriter.println(messsage[0] + "\n");
        System.out.println("messsage::"+messsage[0]);
        printwriter.flush();
        BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));

                serverMessage = in.readLine();
                if (serverMessage.equals("exit")) {
                    runOnUiThread(new Runnable() {
                        public void run() {
                            tv.setText("Thankyu visit again!!" + "\n");
                        }
                    });                     }   
                else {
                runOnUiThread(new Runnable() {
                    public void run() {
                        tv.setText(serverMessage.toString() + "\n");
                    }
                });

        }
     }
    } catch (UnknownHostException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    return null;

另外,我已经在我的清单文件中授予了这个权限:

<uses-permission android:name="android.permission.INTERNET"/>
  <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
  <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>

这是我的第一个安卓应用,请大家帮忙!!!

4

1 回答 1

3

确保 Android 和 PC 具有相同的子网。

我更喜欢您第一次使用 USB 电缆连接并在cmd端口转发中运行:

adb forward tcp:7612 tcp:7612

7612端口是我随机取的。

配置您的代码以使用此端口,例如:

client = new Socket("127.0.0.1", 7612);

通过这种方式,您可以验证它不是 WiFi 问题,而是使用您的代码。

如果通过 USB 一切正常,请尝试找出 WiFi 问题。

希望对你有帮助,

于 2013-09-15T09:10:05.140 回答