【问题标题】:chat application, sockets vs RMI聊天应用程序,套接字与 RMI
【发布时间】:2012-07-27 17:45:56
【问题描述】:

我想构建一个聊天应用程序,但对决定是使用套接字还是 RMI 来构建应用程序感到困惑。我听说 RMI 很难通过 Internet 配置和部署,因为这是我的意图,我想知道使用套接字或 RMI 哪个更合适。由于套接字或 RMI 中的 NAT 是否更容易解决问题?

如果我想在以后添加语音支持怎么办,这有助于决定走哪条路吗?

【问题讨论】:

  • 套接字。如果你想要的话,我有一个样品。只需使用用户名进行简单的命令行聊天。
  • 套接字在 Java 中很简单,坚持使用它们。
  • 谢谢亨利,但我这样做主要是为了学习,所以会尝试从头开始构建它,但如果我将来有任何问题,我可以问你。
  • @comatose 这正是我所做的。 :) 当然。有需要就找我。我会先做命令行,然后再做GUI。 ;)
  • 我相信您对 RMI 的强大功能一无所知。供您参考,请使用回调

标签: java sockets rmi


【解决方案1】:

1.对于Chat Messenger等应用程序,我赌注Sockets.

2. RMI 将是在这里杀死

3. 此外,NAT 的问题不是SocketRMI 有关,它与静态 IP 有关。

4.如果您想通过网络部署聊天服务器,那么首先您必须有一个静态 IP,您需要要求您的 ISP 为您提供一个它们需要额外付费,或者互联网上有网站,这会使您的动态 ips 成为静态的。

5.但是如果您的服务器位于本地局域网环境中,那么我认为您这样做不会有问题。

【讨论】:

    【解决方案2】:

    两者都是可用于构建聊天服务器/客户端的合理选择。可以设置一个套接字来接收传入连接并为每个“chatter”启动一个新线程,或者可以使用 RMI 来创建一个分布式对象,客户端可以在该对象上调用方法。

    RMI 基本上是一个套在套接字上的层,通常用于分布式计算,其中需要一些透明度并且需要调用远程方法。它还允许到服务器的无状态连接。

    如果您选择在 RMI 中实现服务器,请注意线程安全可能是一个问题。

    对于本地服务器,使用纯套接字可能更容易。

    有关 RMI 的更多详细信息: http://www.oracle.com/technetwork/java/javase/tech/index-jsp-136424.html

    【讨论】:

    • 线程安全无论如何都是服务器中的一个问题。 RMI 没有增加任何内容,也没有减少任何内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-30
    • 1970-01-01
    • 2018-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多