【问题标题】:Client to specific client communication through a server客户端通过服务器与特定客户端通信
【发布时间】:2014-03-28 17:32:00
【问题描述】:

我已经成功实现了一个服务器-客户端应用程序,我在其中维护了一个连接到数组中的服务器的客户端列表。我不明白的是客户端将如何告诉服务器有关发送消息的客户端的信息。就像服务器 A 有 3 个连接的客户端让我们说 a、b 和 c。现在如果 a 想向 c 发送消息,它将如何告诉服务器呢? 我希望客户端向服务器发送请求,请求连接到客户端 c,服务器向客户端 c 请求许可,如果 c 接受 a 并且 c 可以来回发送消息,直到其中一个断开连接

【问题讨论】:

  • "a" 向服务器 A 发送消息,消息包含谁应该接收该消息以及该消息的内容是什么。然后服务器 A 向客户端 c 发送消息及其内容。
  • 我希望客户端向服务器发送一个请求,请求连接到客户端 c,服务器向客户端 c 请求许可,如果 c 接受 a 并且 c 可以来回发送消息,直到其中一个断开连接.
  • 你的问题是什么?如果你想直接连接“a”和“c”,这是不可能的,每条消息都必须通过服务器发送。
  • 我想实现一个聊天应用程序,其中服务器有不同的连接客户端,任何客户端都可以通过服务器连接到任何其他客户端并通过服务器进行通信,并且可以随时退出连接。
  • 不不,消息将通过服务器发送,但该消息必须发送给某些客户端,而不是发送给维护列表中的每个客户端

标签: java sockets


【解决方案1】:

对于 IM (Instant Messaging),您可以查看聊天应用程序中非常流行的 XMPP 服务器和客户端,甚至 gtalk 也适用于它们。

XMPP 服务器:jabber 服务器。

【讨论】:

    【解决方案2】:

    通常的做法是通过服务器交换所有消息(在给定协议中),并作为所有内容的中介。如果您想在客户端之间直接通信,请查看 p2p 或点对点 (http://en.wikipedia.org/wiki/Peer-to-peer)。

    你的问题和这个很相似:Client-Server-Client communication using Sockets

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-16
      • 2012-12-26
      • 2011-09-05
      相关资源
      最近更新 更多