在python中广播套接字服务器

Hem*_*S R 2 python sockets socketserver python-2.7 python-sockets

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

  • 它的应用程序不是Web应用程序.

fjf*_*njo 7

在SO中有一个自动回答的问题已经在谈论这个:如何使服务器可被LAN客户端发现

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

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

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

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