3

我正在构建一个多人游戏,所以一旦服务器启动,我想连续广播服务器名称,以便客户端可以知道有一些服务器正在运行。我不想提供 IP 地址和端口号来连接服务器。有人可以帮我广播服务器名称。

  • 它是一个应用程序而不是一个网络应用程序。
4

2 回答 2

8

SO中有一个自动回复的问题已经在讨论这个问题:如何使服务器可被局域网客户端发现

您可以使用相同的技术来请求本地网络中的服务器。

视频游戏中的方法(YMMV)是:

  • 服务器启动并绑定到广播。
  • 客户端启动并绑定到广播。
  • 客户端发送请求服务器的广播消息。
  • 服务器从客户端接收广播消息并回复另一个关于它们的广播(如果他们感到偏执,他们可能会在一两秒后重新发送该消息)。
  • 客户端等待几秒钟并记录所有响应的服务器的信息。
  • 客户端向服务器展示一份列表,并要求玩家选择一个。
    • 也许他们会希望在玩家访问服务器列表页面期间继续并行执行上一步。
  • 客户端从广播中解除绑定并尝试连接到播放器选择的服务器。
    • 通常也可以选择端口,但游戏中默认提供此连接的默认端口。这样,如果端口未更改,您甚至不需要在消息中广播服务器身份......
  • 每个人都停止用广播消息使网络饱和!:P

要通过 Internet 发现服务器,您需要某种通知服务。网络中有很多选项可用作通用发现服务,自 android 网络游戏时代以来就很流行。

于 2013-09-26T16:41:33.190 回答
0

如果服务器的位置是固定的,为什么不在代码中定义服务器 IP 地址并让脚本连接到它呢?用户将永远不必看到您的服务器的 IP 地址。

于 2013-09-26T16:36:42.530 回答