编写桌面GUI客户端与服务器通信

时间:2009-05-11 21:34:18

标签: java client-server

我有一个Java应用程序,这是一个长时间运行的过程(我们称之为“服务器”)。我必须编写一个桌面GUI(很可能是在Swing中),我们称之为“客户端”,它可以连接到这个应用程序并且:

  1. 显示应用程序的状态更新
  2. 为应用程序提供特定的“手动触发”命令
  3. 客户端和服务器之间的每个交互(会话线程)都很短,但可能会涉及到一些消息上下。实现这样的事情有哪些各种选择?速度对我来说不是一个大问题;我对能够在不受管道细节困扰的情况下发展会话协议的事情更感兴趣。我现在想到的选项是套接字,RMI,JMS和JavaSpaces。

5 个答案:

答案 0 :(得分:1)

Apache Camel(Java)取得一个高峰。它支持您提到的所有选项,并在路由消息时允许规则。

单独安装或随Apache ActiveMQ(JMS代理)一起安装。

答案 1 :(得分:0)

我用XML-RPC做了很多年的这种事情。我喜欢它,因为它很简单,让你在15分钟内跑步。这都是http和简单的XML。

答案 2 :(得分:0)

如果它是通过RESTful API扩展服务器的选项,那么这可能是客户端最容易使用的API。在简单地以URL术语说明API后,您可以根据需要轻松地将客户端切换为其他语言。

答案 3 :(得分:0)

我使用ObjectInputStream和ObjectOutputStream为套接字命令解决了套接字问题。

对于协议,您需要不同的对象命令(命令模式在这里很有用)。所有这些对象都应该是可序列化的。然后你可以简单地发送/接收命令。恕我直言是最简单的方法(在技术方面和实施方面)。

答案 4 :(得分:0)

我同意@Norbert Hartl。 Apache有一个简单的XMLRPC实现,可以与Apache HTTPClient一起使用。该库还有一个使用服务器接收XMLRPC请求的示例。