我有一个工作代码,我可以在PC和Android模拟器之间交换数据。现在,我想用真正的Android设备测试这个应用程序。即我想在我有一台java服务器和Android手机的电脑之间交换文字。对于我的模拟器我使用模拟器虚拟IP地址,它工作正常。但是,为了在手机中测试我的应用程序,我在同一网络中连接了手机和电脑,并在我的应用程序中使用了手机的IP地址。然后我在手机中安装了应用程序,但连接没有建立。如何在代码中进行其他更改以在手机中使用此应用程序。这是我的安卓代码,
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>
这是我的第一个Android应用程序,所以请帮助!!!
答案 0 :(得分:2)
确保Android和PC都具有相同的子网。
我更喜欢您第一次使用USB线连接并在cmd
端口转发中运行:
adb forward tcp:7612 tcp:7612
端口7612我是随机拍摄的。
配置您的代码以使用此端口,例如:
client = new Socket("127.0.0.1", 7612);
通过这种方式,您可以验证其不是WiFi问题,而是使用您的代码。
如果通过USB全部按预期工作,请尝试找出WiFi问题。
希望它会对你有帮助,