什么是客户端/服务器或P2P通信的“官方”Java API? Java RMI?其他一些网络API ??
此官方网络API 是两者 SE和EE的标准吗?
我确定答案是特定于上下文的,所以让我们看几个例子:
我没有特定的应用程序,我只是想知道Java世界中客户端 - 客户端和客户端 - 服务器通信的“规范”是什么。
答案 0 :(得分:3)
如果被Java绑定不是问题,那么当涉及到客户端和服务器解决方案“交换”数据时,RMI是一个非常抽象的解决方案(特别是当数据是Java类时,可能很难/太多努力表示为文本数据)。只需确保您的对象实现Serializable,几乎任何东西都可以通过网络传输。
如果这不符合您的账单并且您想要删除原始网络内容,那么客户端 - 服务器套接字框架Netty是一个不错的选择。
答案 1 :(得分:1)
在J2SE中没有最官方的网络API这样的东西,所有J2SE API都是正式的,因为Sun(现在是Oracle)支持它们。 也就是说,您应该根据以下标准选择API:
例如,在两个客户端之间,简单的基于文本的协议就足以传递POJO,例如使用Apache MINA或Google协议缓冲区。
这也适用于客户端和服务器之间。
回应Zac的评论问题:
答案 2 :(得分:0)
对于P2P,Sun在某一点上非常努力地推动了JXTA。
我不敢将RMI用于P2P通信。
答案 3 :(得分:0)
rmi几乎是标准的java to java协议。它内置并且使用起来非常简单。大多数j2ee后端也使用rmi进行通信,尽管这不是唯一的可能性。
答案 4 :(得分:-1)
J2SE最常见的可能是RMI或原始套接字。
J2EE使用每个人(服务器和客户端)订阅的消息传递总线与rmi样式解决方案完全不同(尽管在最低级别,实现可能仍然依赖于RMI)。它有助于自动化冗余和故障转移。如果您需要此功能,我相信它也可以在SE中使用。
我现在已经有一段时间没用过J2EE了,所以这可能已经改变了,但我对此表示怀疑。消息传递系统是J2EE的核心组件。