gpt4 book ai didi

c - 服务器的网络发现

转载 作者:行者123 更新时间:2023-12-01 12:54:00 25 4
gpt4 key购买 nike

好的,所以我知道客户端计算机和服务器计算机之间的通信可以通过在两台计算机之间创建套接字在 Windows 中启动,但是我看到的每个教程都取决于最终用户知道 IP 地址他们希望连接到的计算机。

然而,在本地网络 LAN 游戏中,客户端会以某种方式自动检测服务器。这是怎么做到的?客户端是否自动检查每个可能的 IP,是否有某种“GetDetectedIPs”api 等?

我正在寻找可以在标准 WIN32 API 中直接使用 C 实现的答案。请不要使用 MFC、.NET 或 C++。谢谢。

最佳答案

您需要的技术称为广播。例如,它用于 BOOTP 和 DHCP 协议(protocol)。

发送带有广播目标地址的数据包会导致它被 LAN 中的所有设备接收。广播地址是一个IP地址,其中主机标识字段由一个填充:

bcast_addr = ~netmask | my_addr;

发现过程通常如下:

  1. 客户端在特定端口发送带有广播目的地址的UDP数据报。
  2. 服务器监听此端口并接收数据报。其他计算机将其丢弃。
  3. 服务器通过一个普通的 UDP 数据报向客户端发送关于它自己的所有必要信息。

关于c - 服务器的网络发现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10685710/

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