gpt4 book ai didi

java - 向服务器发送字符串并接收未更新的响应

转载 作者:行者123 更新时间:2023-12-01 13:00:21 25 4
gpt4 key购买 nike

我正在用 Java 编写一个 Android 应用程序,服务器端也用 Java 编写。连接是通过套接字进行的。为了将字符串发送到服务器,我使用 asyncTask,如下所示:

public static void send(String content) throws IOException {
mConnectionHandler.new AsyncSendToServer().execute(content);
}

private class AsyncSendToServer extends AsyncTask<String, Void, Void> {

@Override
protected Void doInBackground(String... params) {
out.println(params[0]);
return null;
}
}

现在服务器的响应如下:

public static String receive() {
mConnectionHandler.new AsyncReceiveFromServer().execute();
return serverResponse;
}

private class AsyncReceiveFromServer extends AsyncTask<Void, Void, String> {

@Override
protected String doInBackground(Void... params) {
String result = null;
try {
result = in.readLine();
} catch (IOException e) {
e.printStackTrace();
}
return result;
}

protected void onPostExecute(String result) {
serverResponse = result;
}
}

由于方法是异步的,serverResponse 在 receive() 中无法获取适当的值。当我执行 AsyncReceiveFromServer 时,receive() 在 asyncTask 中更新 serverResponse 的值之前返回该值。我该怎么做才能发送更新的服务器响应?

最佳答案

从 AsyncSendToServer 的 onPostExecute 执行 AsyncReceiveFromServer。这样,您就可以绝对确定发送已完成。

关于java - 向服务器发送字符串并接收未更新的响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23560948/

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