【问题标题】:Java client server applicationJava 客户端服务器应用程序
【发布时间】:2023-12-10 13:09:01
【问题描述】:

我想编写一个简单的客户端服务器应用程序,将它们部署在不同的位置,服务器需要向客户端公开两个公共方法并将它们之间的数据交换保持在最低限度,我正在走使用套接字的道路但是,客户端如何调用服务器上的公共方法呢?还是有别的办法?

【问题讨论】:

    标签: java sockets client


    【解决方案1】:

    有几种方法可以做到这一点,但我会看看RMI。它使调用远程 java 对象的方法变得非常容易。仍然会涉及到低级协议(sockets/tcp),但您不需要自己明确地管理它。

    【讨论】:

    • 我不这么认为,我觉得 Khalid 可以利用那里的 servlet 来开发 Web 服务。
    • 如果服务器运行在像Tomcat这样的应用服务器中并且可以暴露Web服务,那么肯定可以这样做。但是,如果服务器只是另一个运行 java 应用程序的进程,我怀疑它是基于这个问题,那么 Web 服务在这里并没有真正的帮助。
    • 你说得对,杰夫。但是考虑到他提出了这个问题,感觉就像 Khalid 不知道使用应用程序服务器的可能性。
    • 谢谢大家 - 我的大部分 Java 代码都在 Web 框架内工作,但我的任务是拥有一个客户端服务器应用程序,客户端只能有一个命令行界面,它读取文件并解析它,然后调用服务器上的两个公共方法。我现在正在研究 RMI。
    【解决方案2】:

    您需要以某种文本或二进制格式对您想要的操作和响应进行编码。

    执行此操作的一种简单方法是发送您要调用的方法的名称,另一端读取该名称并调用该名称的方法。如果您想让它更短,您可以发送(byte) 1 调用第一个方法,发送(byte) 2 调用第二个方法等等,并使用switch 语句调用适当的方法。

    【讨论】:

    • 谢谢,我将其视为一个选项,要求服务器公开两个客户端可以调用的公共方法。
    • 这就是我的建议。这基本上就是 RMI 所做的(具有额外功能)