java - 从 Android 设备上的 Java 服务器获取响应
问题描述
我正在从 android 手机向 Java 服务器发送一个请求,它在服务器端收到但无法在手机上获得响应 不知道为什么无法获得响应
下面是我的代码
private Socket client;
private PrintWriter printwriter;
class ClientThread implements Runnable {
private final String message;
ClientThread(String message) {
this.message = message;
}
@Override
public void run() {
try {
// Creates a stream socket and connects it to the specified port number on the named host.
client = new Socket("192.168.0.88", 8094); // connect to server
printwriter = new PrintWriter(client.getOutputStream(),true);
printwriter.write(message); // write the message to output stream
Log.d("server request", message);
printwriter.flush();
printwriter.close();
runOnUiThread(new Runnable() {
@Override
public void run() {
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(client.getInputStream()));
StringBuilder sb = new StringBuilder();
String line = reader.readLine();
// Read Server Response
Log.d("server response", line);
} catch (Exception e){
e.printStackTrace();
}
}
});
// closing the connection
client.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
解决方案
去解决问题。在向服务器发送请求之前需要打开我的输入流
class ClientThread implements Runnable {
private final String message;
ClientThread(String message) {
this.message = message;
}
@Override
public void run() {
try {
String fromServer;
Socket socket = new Socket("192.168.0.2", 8094);
Log.d("server connect", "Connected!");
boolean run = true;
while (run) {
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
out.println(message);
fromServer = in.readLine();
Log.d("server resp", "received2: " + fromServer);
if (fromServer.equals("olleH")) {
out.println("Bye");
}
socket.close();
in.close();
out.close();
}
} catch (
IOException e) {
e.printStackTrace();
}
}
}
推荐阅读
- jenkins - 在 Jenkins 中安装“JavaScript GUI Lib”插件失败
- mysql - Mysql 导入 - CSV 文件越来越大
- reactjs - 处理 useMutation 钩子中的错误的最佳方法是什么
- python - 使用python生产的内存中sqlite
- asp.net-mvc - ajax 其他参数是否为空?
- c# - 一页验证中的 Asp Net Core 2 模型
- java - 无法在 R 上将 kafka 流作为 spark 数据帧流读取/写入
- azure-devops - AzureDevOps - YML - 如何将部署作业输出变量与 VM 资源一起使用
- python-3.x - pyshark.LiveCapture 未捕获数据包
- sql - 使用 SQL 对观察进行分组并在同一组中指定