6

我正在尝试弄清楚如何使用 winsockets 将我的游戏变成 LAN 可玩游戏。我已经阅读了一些 winsockets 文档,但我无法弄清楚客户端如何获取在 LAN 上创建的所有游戏。

它是否必须尝试“连接”到 LAN 上的每个 IP,例如尝试连接到 192.168.0.1,然后是 192.168.0.2 等?有没有更好的办法?

4

4 回答 4

3

您将使用广播在 LAN 上宣传您的服务器。然后客户端可以收听这些广播以“找到”服务器。

有关更多信息,请参见此处:http: //tangentsoft.net/wskfaq/intermediate.html#broadcast

于 2010-07-08T23:25:18.293 回答
2

通常,这些游戏服务器使用本地 UDP 广播,这是所有客户端都会接收到的内容,并且只要他们正在收听它就可以进行处理。

这是我发现您可能感兴趣的一些示例客户端和服务器代码:http: //visual-c.itags.org/visual-c-c++/29424/

于 2010-07-08T23:26:55.500 回答
2

我认为有两种可能的方法可以做到这一点。

  1. 建立一个客户端和服务器连接的“大厅”,以便他们可以通过它找到彼此。

  2. 服务器广播 UDP 数据包。客户端侦听并更新服务器列表。

如果您需要一种快速简便的方法,则第二个选项会很棒,但请记住,大多数 UDP 数据包将被浪费,因为每个客户端仅使用一次。

第一个选项是解决这个问题的更通用和更广泛的解决方案。但是,它可能需要更多时间来设计和实施。

于 2010-07-22T05:10:02.200 回答
0

首先,我建议您使用wireshark 进行任何网络开发。它将向您显示通过电线的数据包。它可以让你看到其他游戏是如何做到的,因为有很多方法可以做到这一点。

使用 UDP 广播是一种方法。只需将目标ip的最后一个字节更改为255就可以了。

于 2010-07-08T23:50:55.390 回答