Java客户端服务器通信中的套接字创建

时间:2018-09-21 14:51:20

标签: java sockets client-server serversocket

在涉及客户端GUI的Java套接字客户端服务器程序中,请牢记以下几点:

  1. 客户端/服务器交互不会持续进行,这意味着最终用户可能会打开GUI,但只能按 按钮/不时发出请求。

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

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

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

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

相互使用一个有什么优点/缺点?

非常感谢

1 个答案:

答案 0 :(得分:1)

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