Sockets 编写管理多个客户端的服务器

Sockets 编写管理多个客户端的服务器,sockets,Sockets,我是设计服务器软件的新手。我希望让服务器决定客户端属于哪个组,然后将客户端交给适当的程序来处理。例如,人们先连接到battle.net,然后服务器匹配玩家,然后他们开始单独的游戏 但我看不出有什么办法。当建立套接字连接时,我无法将该套接字对象提供给另一个程序。因此,我能想到的唯一方法是调用另一台服务器,并告诉客户端重新连接到该服务器。通常是这样做的吗?或者有什么我不知道的方法可以将套接字的所有权转移到另一个程序?您可以这样做 一旦客户端连接到服务器。客户端需要发送一些包含映射信息的请求数据 服务

我是设计服务器软件的新手。我希望让服务器决定客户端属于哪个组,然后将客户端交给适当的程序来处理。例如,人们先连接到battle.net,然后服务器匹配玩家,然后他们开始单独的游戏


但我看不出有什么办法。当建立套接字连接时,我无法将该套接字对象提供给另一个程序。因此,我能想到的唯一方法是调用另一台服务器,并告诉客户端重新连接到该服务器。通常是这样做的吗?或者有什么我不知道的方法可以将套接字的所有权转移到另一个程序?

您可以这样做

  • 一旦客户端连接到服务器。客户端需要发送一些包含映射信息的请求数据

  • 服务器将解析此数据并派生一个新线程,并相应地调用所需函数

  • 服务器线程将返回,分叉子线程将继续

  • 该函数将处理此客户端,您的主服务器仍可以侦听其他客户端的请求


  • 希望有帮助。

    但是这种方法只有在映射例程很小的情况下才有效,对吗?分叉线程将包含已调度客户端不再需要的映射例程。是的,这绝对正确。。但这是最简单的方法。可能会有一些更健壮的方法,但它需要一个中间节点。此节点将请求转发到相应的服务器。例如,我们有一个中央服务器a和一些处理不同版本游戏的其他服务器。服务器“A”将充当客户端和其他服务器之间的中间节点。这样我们就不需要强迫用户连接到不同的服务器。