【问题标题】:Android server PC client communicationAndroid服务器PC客户端通信
【发布时间】:2020-10-02 08:28:04
【问题描述】:

我正在解决一个问题,我必须将数据从 PC 应用程序(用 java 编写)发送到 android 应用程序 (java)。 这是一个收银机应用程序,需要在 android 应用程序上显示账单详细信息。虽然没有账单,但android应用需要显示其他东西(图片等)。收银应用已经存在,它是桌面PC软件。

最好的方法是什么? 它目前是通过从文件中写入和读取来完成的,但我想以更好的方式来完成它。 我开始使用套接字,其中 android 应用程序是等待 PC 上的收银机应用程序开始连接的服务器。发生这种情况时,连接打开,收银机发送 JSON 字符串,直到账单结束。

我选择 android 作为服务器是因为一个收银机可能连接了多个 android,因此它可以在多个“屏幕”上显示账单详细信息,并且还可以使 android 应用程序保持特定端口始终打开并为客户收听。

这是一个好方法吗?我刚刚读到了套接字连接在不使用期间可能会死掉的可能性,这可能是硬件问题。我还阅读了有关 RMI java 的信息,但不知道我是否应该这样做。我从来没有研究过设备之间的通信,所以我很感激每一个建议。

【问题讨论】:

  • 设置REST API
  • where android app is a servers waiting for cash register to start connection. 我以为你说 Android 应用程序会与 pc 上的 java 应用程序通信。
  • 是的,PC上的收银应用,对不起,我会编辑帖子
  • 我还会让 Android 成为客户端。它从您将制作服务器的收银机应用程序中获取数据。该 java 服务器可以有许多客户端。
  • @blackapps 客户端没有发起通信吗? Android 应用程序只是一个显示器,没有用户与设备的交互。另外,我想在PC端进行配置,所以我不需要为每个android设备配置收银机应用程序的IP地址,只需在PC端进行即可。这样,如果用户想添加新的 android 设备,我可以远程配置是否通过 PC 上的屏幕共享作为支持的一部分

标签: java android sockets


【解决方案1】:

我按照建议做了并改变了逻辑。我做了PC服务器和android客户端。

如果有人需要,这是测试服务器应用程序的代码。它是一个简单的服务器,通过选定的端口将终端中输入的消息发送到客户端。

public static void main(String[] args) {

    while (true) {
        try {
            ServerSocket serverSocket = new ServerSocket(12345);
            Socket socket = serverSocket.accept();

            DataOutputStream dataOutputStream = new DataOutputStream(socket.getOutputStream());

            while (true) {
                if (socket.isConnected()) {
                    System.out.println("connected");
                }
                BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));

                // Reading data using readLine
                String name = bufferedReader.readLine();
                System.out.println(name);

                dataOutputStream.writeUTF(name);
                if (false) break;
            }

            socket.close();
            serverSocket.close();
            
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

【讨论】:

    猜你喜欢
    • 2011-07-06
    • 1970-01-01
    • 1970-01-01
    • 2016-05-05
    • 2013-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多