使用 ServerSocket 显示更新的内容

问题描述 投票:0回答:1

我正在尝试向我的 Android 应用程序添加网络服务器。我所拥有的功能在用户第一次访问服务器时有效,但如果他们刷新,我如何在他们刷新页面时向他们显示更新的内容?

new Thread(() -> {
    try {
        ServerSocket serverSocket = new ServerSocket();
        serverSocket.setReuseAddress(true);
        serverSocket.bind(new InetSocketAddress(8080));

        Socket clientSocket = serverSocket.accept();

        BufferedWriter out = new BufferedWriter(new OutputStreamWriter(clientSocket.getOutputStream()));

        out.write("HTTP/1.0 200 OK\r\n");
        out.write("Content-Length: 59\r\n");
        out.write("\r\n");
        out.write("<html>");
        out.write("<style>");
        out.write("body{margin: 12px;}");
        out.write("</style>");
        out.write("<title>Web Server</title>");
        //output dynamic data
        out.write("</html>");

        out.close();
        clientSocket.close();


    } catch (Exception ex) {
        ex.printStackTrace();
    }
}).start();
android serversocket
1个回答
0
投票

一些事情:

1)Android 不是一个好的服务器操作系统。如果应用程序不在前台,服务会很快被终止。不建议在 Android 上运行 HTTP 服务器。这条路上有很多痛苦。

2)HTTP 不是这样工作的。您不会收到更新 - HTTP 是一次性请求和返回。如果你想这样做,你要么需要轮询刷新页面,你需要创建一个 Web 端点,轮询它,并使用它来获取数据并在 javascript 中自己构建页面,或者你需要使用 websocket 来执行此操作与选项 2 相同。它们都不是像构建 HTTP 服务器那么简单。

© www.soinside.com 2019 - 2024. All rights reserved.