【问题标题】:Java: Sockets or RMI?Java:套接字还是 RMI?
【发布时间】:2010-04-12 08:25:29
【问题描述】:

我需要将我们的应用程序分成一个轻量级的 gui 应用程序和一个业务逻辑应用程序。这不会是客户端/服务器设置,因为“服务器”组件将只有一个客户端。

应用程序的另一个限制是它只有一个入口/出口点。因此,如果我们要使用 RMI,它只会出现在一个函数上。所有表单数据都已经打包成一个字符串并通过一个传输区域。

我应该只使用 Java 套接字来增强这个应用程序,还是使用 RMI?还是其他 Java 技术?

我之前发表过一篇文章,概述了我们申请的要求,但没有得到答复。 https://stackoverflow.com/questions/2604528/terminal-panel-pc-single-server-solution-client-server-or-rdp

干杯。

【问题讨论】:

  • 我想你自己已经回答了这个问题。如果它是轻量级且单用户的,并且您对 RMI 感到满意,那么您应该使用它。
  • @paxdiablo 可能重复? :)
  • 关闭这个以支持一个没有答案的问题似乎很糟糕。最好关闭那个,然后在此 Q 中编辑任何有用的内容。
  • 感谢各位的回答。当办公室里没有其他人可以回答这些问题时,Stackoverflow 是一个很好的资源。我得到的只是“什么是 RMI?”。干杯。

标签: java sockets client-server rmi


【解决方案1】:

就个人而言,如果您只有一个方法可以调用,并且您的所有数据都已经包装在一个字符串中,那么 RMI 似乎有点矫枉过正。我想一个简单的套接字服务器就足以满足您的需求。但是,RMI 确实为您提供了很多免费的东西,例如多线程、分布式垃圾收集、对象编组等。但是,如果您只有一个客户端,那么多线程可能没有用,因为您正在做自己的对象编组这些好处可能不会为您带来任何好处。

这里有一个关于 rmi 功能的好页面:http://java.sun.com/javase/technologies/core/basic/rmi/whitepaper/index.jsp

【讨论】:

  • 这就是我的想法。保持简单,或者使用 RMI,然后再利用它的其他功能。我仍然不确定,但我只是想确保没有其他我不知道的框架/API。干杯。
【解决方案2】:

由于您的协议已经非常简单(您只需传递一个字符串),我建议您只使用套接字。 这样做的好处是您不会在两端都被 Java 束缚,例如 - 可以轻松地将 UI 切换到另一种语言。

【讨论】:

    【解决方案3】:

    在完成了使用原始套接字进行通信、使用 RMI 和使用 SOAP 的应用程序之后,使用 RMI 是最简单的(非常简单),但是您必须在所有事情上都使用 Java。 RMI 最简单的关键在于它确保发送整个消息并且包含一个基本的发现框架,但它没有 SOAP 的复杂性(这比任何事情都复杂得多)其他上面列出的)。

    【讨论】:

      【解决方案4】:

      您可以考虑将您的服务器入口点包装为一个 servlet 并从客户端执行 POST。

      【讨论】:

      • 是的,负责编组和解组。唯一的缺点是,我们需要网络服务器。
      猜你喜欢
      • 2011-01-20
      • 2023-04-05
      • 1970-01-01
      • 1970-01-01
      • 2010-11-06
      • 1970-01-01
      • 1970-01-01
      • 2012-07-07
      • 2010-09-18
      相关资源
      最近更新 更多