在同一台机器上运行客户端和服务器

cto*_*tor 2 c++ sockets networking network-programming winsock

我有一个使用UDP端口25565的客户端和服务器应用程序。为了在同一台机器上运行它们,因为只有一个应用程序可以将自己绑定到端口25565,这是否意味着我需要使用两个单独的端口进行传输应用程序之间的数据?

我想到的是以下——

客户端 -> 25565 -> 服务器

客户端 <- 25566 <- 服务器

这是唯一的解决方案还是有另一种处理方法?

bok*_*kan 8

  • 您的服务器应用程序打开一个端口并等待客户端连接。
  • 客户端需要提前知道这个端口,以便它可以建立到所需服务的连接。
  • 客户端可以使用任何可用端口来启动此连接(最好使用端口 > 1000)。
  • 服务器在传入数据包中看到客户端正在使用的端口,因此它将向它发送 anwser。无需在您的设计中指定它。
  • 握手后,TCP/IP 连接由以下 4 个值标识:服务器 IP、服务器端口、客户端 IP、客户端端口。
  • 没有其他连接可以具有相同的四个值。

回答你的问题。TCP/IP 连接是双向的,一旦建立,服务器就可以向客户端发送数据,反之亦然。

我会像这样绘制方案:

服务器端口 25565 <-> 客户端端口 25566(或任何其他端口)