2016-07-15 110 views
0

我正在构建一个应用程序,其中的要求是,有一个主服务器,它将向客户端服务器发送信号,根据此信号客户端执行某些操作并发回响应主服务器。这里只有一个主服务器,可以是多个客户端服务器。在特定时间,主服务器可以向多个客户端发送多个信号。 我目前正打算使用两个端口在Java中使用套接字编程来做到这一点。请让我知道实现这一目标的最佳方式吗?并且我们是否也有任何可以使用的良好现有API?Java中客户端服务器通信的最佳方式

+0

您是否听说过[websockets](http://www.oracle.com/technetwork/articles/java/jsr356-1937161.html)?也许这不适合你,但看起来你就是这样。 – Gendarme

回答

0

看看RMI:https://docs.oracle.com/javase/tutorial/rmi/如果你想要基于socket/TCP/UDP/etc的东西,用Netty写东西可能是很好的解决方案 - >http://netty.io/(他们有很好的例子)。

如果计划的服务器和客户端之间的通信不是comlex,并且不需要像Netty这样的库提供的所有这些东西,我还会建议考虑使用普通Java套接字。

+0

感谢细节Mateusz。我想知道Netty和RMI是否是开源的?并且客户端和服务器之间的通信也将被安排。这里的服务器是一个Web应用程序,但客户端并不是基于Web的,它只是执行服务器所需的操作并返回细节,它可以是Java中的脚本或shell或任何其他内容。 – user2899524

+0

Netty是开源的,RMI是在Java EE中构建的,因此您不必担心许可证。如果通讯必须安排,您必须单独实施。我可以推荐[Quartz](http://www.quartz-scheduler.org/)(opensource)。它有很多功能,但使用起来非常简单。无论那个服务器是web应用程序还是客户端其他东西。如果你提供适当的通信接口,这不会是一个问题。我使用Netty在Java服务器应用程序和用Java,C和Python编写的许多其他工作人员之间进行通信。 –