gpt4 book ai didi

Android 监听来自服务器套接字的消息

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:38:54 26 4
gpt4 key购买 nike

我正在尝试创建一个通过套接字与本地服务器通信的 Android 应用程序。通信使用 JSON 以字符串形式传递简单的命令和数据。客户端应不断监听来自服务器的传入消息,并在收到新数据时更新用户界面。

所以我创建了一个网络服务,它是在后台运行的绑定(bind)服务。从我的 Activity 中,我绑定(bind)到服务并接收服务对象的实例。服务对象包含允许我向服务器发送命令的实例方法。

我的问题是,如何使我的服务能够持续监听来自服务器的消息而不阻止向服务器发送消息的可能性?

private Socket socket = null;
private PrintWriter out = null;
private BufferedReader in = null;

private Listener listener;

private String host = "10.0.1.4";
private int port = 3000;

public NetworkService()
{
try {

if (socket == null)
{
socket = new Socket(this.host, this.port);
out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true);
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
}

if(listener == null)
{
listener = new Listener();
Thread thread = new Thread(listener);
thread.start();
}

} catch (Exception e) {
// ...
}
}
}

public class Listener implements Runnable
{

@Override
public void run() {

try {
String line = null;

while((line = in.readLine()) != null)
{
// Do something. Never gets here

}
} catch (Exception e) {
// ...
}

}

}

最佳答案

您可以在您的服务中创建一个线程来监听服务器。第二个线程用于发送命令。然后,对于您的服务,您应该创建一个带有处理程序的主线程。此处理程序将处理来自这两个线程的消息。

关于Android 监听来自服务器套接字的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9258677/

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