在python中广播套接字服务器

时间:2013-09-26 15:38:20

标签: python sockets python-2.7 socketserver python-sockets

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

  • 它的应用程序不是网络应用程序。

2 个答案:

答案 0 :(得分:6)

在SO中有一个自动回复的问题已经在谈论这个:How to make a server discoverable to LAN clients

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

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

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

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

答案 1 :(得分:0)

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