【问题标题】:Sockets creation in java client server communicationjava客户端服务器通信中的套接字创建
【发布时间】:2018-09-21 14:51:19
【问题描述】:

在涉及客户端 GUI 的 java 套接字客户端服务器程序中,请记住以下内容:

  1. 客户端/服务器交互不会是连续的,这意味着最终用户可能会打开 GUI,但只会按 按钮/每隔一段时间发起请求。

  2. 服务器会为每个客户端启动一个新线程

  3. 所有 I/O 都将通过 ObjectInput/OutputStream

因此,基于上述内容,创建连接/套接字的最佳方法是什么:

  1. 最好为每个客户端启动一个套接字连接并使其保持活动状态直到客户端关闭其 GUI/会话,并在同一连接中处理所有 I/O?
  2. 还是在每次客户端请求时启动新的套接字连接,并在服务器响应发送后立即关闭它? (这样一个客户端 GUI 会话可能与服务器有多个连接/断开连接)

使用其中一种的优缺点是什么?

非常感谢

【问题讨论】:

    标签: java sockets client-server serversocket


    【解决方案1】:

    对于由用户“点击”发起的请求,我将使用第二种模式,您可以分别为每个用户操作打开和关闭连接。这将使您不会永远保持多个打开的连接。永远保持连接可能会导致许多资源耗尽类型的问题。如果您没有真正重要的理由来保持打开的连接,例如。您需要使用聊天等实时消息来响应客户端,而是可以在请求后直接响应,那么不保持连接会简单得多。如果不需要,最好不要保持打开的空闲连接。

    【讨论】:

      猜你喜欢
      • 2017-08-23
      • 1970-01-01
      • 1970-01-01
      • 2012-08-30
      • 2012-11-02
      • 1970-01-01
      • 2015-06-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多