【问题标题】:Java socket programming: Is it possible for the server socket to initiate a communication?Java套接字编程:服务器套接字是否可以发起通信?
【发布时间】:2012-02-09 21:34:10
【问题描述】:

1、我的服务器有一个ServerSocket来接受客户端连接 2,我的客户端创建一个套接字并向服务器发送消息。 3、服务器获取消息并回复客户端。

因此,发起通信的始终是客户端。

说在初始客户端连接后一段时间,服务器想向客户端发送另一条消息,可以这样做吗?

【问题讨论】:

    标签: java sockets


    【解决方案1】:

    客户端必须始终启动连接,这几乎是服务器和客户端之间的唯一区别(程序可以既是服务器又是客户端)。

    但是一旦建立连接,只要它没有关闭,任何一方都可以向另一方发送数据(假设另一方正在监听数据)。

    【讨论】:

      【解决方案2】:

      如果您保持来自客户端的套接字连接在服务器上打开,则可以。客户端需要始终监听传入的数据。

      否则,如果在发送消息后服务器上的连接关闭,客户端将不得不定期轮询服务器。

      【讨论】:

      • +1:或者你可以让“客户端”有一个服务器端口,允许“服务器”连接到客户端。但是,在客户端可用时保持连接的第一个建议要好得多(而且要快得多,可能更有效)
      • 是的,但您必须在服务器端维护一个客户端列表才能连接。我想这一切都取决于你想要什么。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-01
      • 2021-06-24
      • 1970-01-01
      相关资源
      最近更新 更多