简单的服务器/客户端GUI通信

时间:2011-07-26 05:56:02

标签: java concurrency

我以这种方式设置应用程序:

服务器侦听来自客户端的传入连接,当客户端连接时,服务器和客户端都会产生一个新线程,监视GUI中的任何更改(按钮单击,命令等等)。我的问题是如何让服务器和客户端线程相互通信(报告各自GUI状态的任何变化)?我现在一直在寻找答案,但似乎找不到答案。请记住,我刚开始学习并发性,所以请尽量详细说明您的回复。

2 个答案:

答案 0 :(得分:0)

您可以使用网络协议在服务器和客户端之间进行通信,例如HTTP(很常见)。

对于在客户端和服务器之间传递的消息,有不同类型的协议,例如XML,JSON或轻量级协议缓冲区等。

您可以在XML,JSON上定义自己的定义,并使用您自己的定义来触发两者之间的操作。

良好的客户端 - 服务器体系结构不应该依赖于您使用的特定语言,例如Java。客户端应采用不同的编程语言,从服务器端接收消息。

答案 1 :(得分:0)

每当事件发生时,您需要创建某种“事件”对象,对其进行编码,然后通过网络将其发送到另一个进程,然后另一个进程接收,解码并执行相同的事件。 / p>

只要能够通过网络发送事件对象,就需要一种编码方式并将其解码为字符串/字节。为此,您有几个选项 - 对于预先实现的方法,您可以尝试java Serializable / ObjectOutputStream / ObjectInputStream或XMLEncoder / XMLDecoder。您也可以查看其他XML或JSON库,如果事件足够简单,甚至可以编写自己的编码器/解码器。