gpt4 book ai didi

java - 客户端-服务器程序,可以从 Java 客户端连接,但不能从 Android 客户端连接

转载 作者:行者123 更新时间:2023-12-01 14:44:50 25 4
gpt4 key购买 nike

我有一个可用的 Java 客户端/服务器程序,它非常简单且基本。这很好用。然而,我现在正在尝试编写一个Android客户端,并且我一直无法从我的Android客户端连接到服务器。我在 Android 网络代码中使用的代码与在普通客户端中使用的代码几乎相同。我的android代码很简单,它所做的就是从onCreate启动这个线程:

private int serverPort = 8889;
private String serverIP = "192.168.5.230";
private Socket socket = null;

private Thread clientThread = new Thread("ClientThread") {
@Override
public void run() {
try {
socket = new Socket();
socket.connect(new InetSocketAddress(serverIP, serverPort), 1000);
DataInputStream din = new DataInputStream( socket.getInputStream());
DataOutputStream dout = new DataOutputStream(socket.getOutputStream());

while (true) {
String message = din.readUTF();
setPicture("picture1");
}
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
};

该端口是我的服务器运行的正确端口,IP 地址也是如此(这是我从 ifconfig 获得的,因为我知道你不能使用 localhost)。当我使用相同的端口和 IP 地址运行普通 PC 客户端时,连接就会通过。但是当我在 Android 设备上运行此代码时,当我尝试连接时套接字超时。

有人对我哪里出错有什么建议吗?

最佳答案

仔细检查您是否在 list 文件中添加了权限要求:

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

但是,可能更重要的是,192.168.x.x 是本地或不可路由的网络,因此您需要位于同一网络上,或者知道如何到达 192.168.5.230 地址。你说当你在你的设备上尝试时它不起作用——你运行时是在本地wifi上运行还是在移动网络上运行?如果您使用的是移动设备,请尝试通过 Wi-Fi 进行连接。

关于java - 客户端-服务器程序,可以从 Java 客户端连接,但不能从 Android 客户端连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15539197/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com