gpt4 book ai didi

java - 客户端-客户端通信无需服务器?

转载 作者:行者123 更新时间:2023-12-02 14:13:51 25 4
gpt4 key购买 nike

我是套接字编程新手,我需要澄清一些事情。

两个客户端通信之间需要一个服务器吗?让我解释一下我的意思:

示例 1:

  1. 客户端1:服务器,我想与客户端2交谈
  2. 服务器:没问题。我们就等他发送连接请求
  3. 客户2:我在这里。我想与客户 1 交谈。
  4. 服务器:好的,这里的 Client1 是 Client2 的 IP 地址。对于您的 Client2,这是

客户端 1 IP 地址。现在你们可以在没有我的情况下互相交谈。

示例2:

  1. 客户端1:服务器,请向客户端2发送一条消息:“嘿客户端2。你好吗?”
  2. 服务器:好的,没问题。向client2发送消息
  3. 客户端2:服务器感谢您发送客户端1的消息。给他回复:“嘿,我很好。”
  4. 服务器:正在向 client1 发送消息..

所以我的问题是:当你遇到两个客户端之后,你是否需要一个服务器来在他们之间进行通信?或者我完全走错了路?

编辑:

这背后的目的是我想将我的非常简单的手机游戏扩展为多人游戏。举例来说,我想在 PACMAN1 手机上显示 PACMAN2,反之亦然。

最佳答案

如果您使用TCP套接字编程,则需要中央服务器来方便客户端之间的通信。

原因 - 您无法从所有其他客户端连接到一个客户端上的端口。所有客户端都可以通过特定端口连接到一台服务器,服务器可以促进客户端之间的通信。

如果您放弃套接字编程并使用消息传递等高级功能;可以实现对等通信以及向多个客户端广播消息。

编辑:

对于这些reasons,我仍然更喜欢 TCP 而不是 UDP特别是可靠性

在多人游戏的情况下,您的客户端仍然需要通过专用套接字连接到服务器。由于无论如何你都必须使用 TCP,服务器可以负责在具有客户端 ID 的客户端之间发送消息。

关于java - 客户端-客户端通信无需服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32630989/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com