使用winsock扫描局域网游戏服务器

时间:2010-07-08 23:20:02

标签: networking winsock lan winsockets

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

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

4 个答案:

答案 0 :(得分:3)

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

有关详细信息,请参阅此处: http://tangentsoft.net/wskfaq/intermediate.html#broadcast

答案 1 :(得分:2)

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

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

答案 2 :(得分:2)

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

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

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

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

    第一个选项是针对此问题的更通用和可扩展的解决方案。但是,可能需要更多时间来设计和实施。

答案 3 :(得分:0)

首先,我建议您为任何网络开发获取wireshark。它会告诉你什么数据包通过电线。它可以让你看到其他游戏是如何做到的,因为有很多方法可以做到这一点。

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