02 Winsock编程.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
大型在线游戏系统-技术实现 如果要实现2000到5000用户的单服务器同时在线,是不难的。 在Windows下,比较成熟的技术是采用完成端口(IOCP)。只要运用得当,一个完成端口服务器是完全可以达到2K到5K的同时在线量的。但,5K这样的数值离百万这样的数值实在相差太大了,所以,百万人的同时在线是单台服务器肯定无法实现的。 大型在线游戏系统-技术实现 要实现百万人同时在线,首先要实现一个比较完善的完成端口服务器模型,这个模型要求至少可以承载2K到5K的同时在线率(当然,如果你MONEY多,你也可以只开发出最多允许100人在线的服务器) 在构建好了基本的完成端口服务器之后,就是有关服务器组的架构设计了。之所以说这是一个服务器组,是因为它绝不仅仅只是一台服务器,也绝不仅仅是只有一种类型的服务器。 大型在线游戏系统-服务器架构 简单地说,实现百万人同时在线的服务器模型应该是: 登陆服务器+大厅服务器+房间服务器。 当然,也可以是其它的模型,但其基本的思想是一样的。 下面,我们将逐一介绍这三类服务器的各自作用。 大型在线游戏系统-登录服务器 登陆服务器: 一般情况下,服务方会向玩家开放若干个公开的登陆服务器,就如QQ登陆时让你选择的从哪个QQ游戏服务器登陆一样,QQ登陆时让玩家选择的几个服务器入口实际上就是登陆服务器。 大型在线游戏系统-登录服务器 登陆服务器的作用: 登陆服务器主要完成负载平衡的作用。详细点说就是,在登陆服务器的背后,有N个大厅服务器,登陆服务器只是用于为当前的客户端连接选择其下一步应该连接到哪个大厅服务器。 当登陆服务器为当前的客户端连接选择了一个合适的大厅服务器后,客户端开始根据登陆服务器提供的信息连接到相应的大厅上去,同时客户端断开与登陆服务器的连接,为其他玩家客户端连接登陆服务器腾出套接字资源。 大型在线游戏系统-登录服务器 登陆服务器功能: 在设计登陆服务器时,至少应该有以下功能: N个大厅服务器的每一个大厅服务器都要与所有的登陆服务器保持连接,并实时地把本大厅服务器当前的同时在线人数通知给各个登陆服务器,这其中包括:用户进入时的同时在线人数增加信息以及用户退出时的同时在线人数减少信息。这里的各个大厅服务器同时在线人数信息就是登陆服务器为客户端选择某个大厅让其登陆的依据。 大型在线游戏系统-登录服务器 举例来说,玩家A通过登陆服务器1连接时: 登陆服务器1开始为当前玩家(客户端)在众多的大厅服务器中根据哪一个大厅服务器人数比较少来选择一个大厅F,同时把大厅F的连接IP和端口发给客户端。 客户端收到这个IP和端口信息后,根据这个信息连接到此大厅,同时,客户端断开与登陆服务器之间的连接。 这便是用户登陆过程中,在登陆服务器这一部分的处理流程。 大型在线游戏系统-大厅服务器 大厅服务器 大厅服务器,是普通玩家看不到的服务器,它的连接IP和端口信息是登陆服务器通知给客户端的。也就是说,在游戏的本地文件中,具体的大厅服务器连接IP和端口信息是没有保存的。 大型在线游戏系统-大厅服务器 大厅服务器的作用: 大厅服务器的主要作用是向玩家发送游戏房间列表信息,这些信息包括:每个游戏房间的类型、名称、在线人数、连接地址以及其它如游戏帮助文件URL的信息等。 从界面上看的话,大厅服务器就是我们看到的游戏房间列表界面。 大型在线游戏系统-大厅服务器 大厅服务器功能: 大厅服务器,主要有以下功能: 向当前玩家广播各个游戏房间在线人数信息 提供游戏的版本以及下载地址信息 提供各个游戏房间服务器的连接IP和端口信息 提供游戏帮助的URL信息 提供其它游戏辅助功能。 但在这众多的功能中,有一点是最为核心的,即:为玩家提供进入具体的游戏房间的通道(IP+端口),让玩家顺利进入其欲进入的游戏房间。玩家根据各个游戏房间在线人数,判定自己进入哪一个房间,然后双击服务器列表中的某个游戏房间后玩家开始进入游戏房间服务器 大型在线游戏系统-房间服务器 游戏房间服务器,具体地说就是如“斗地主1”,“斗地主2”这样的游戏房间。 游戏房间服务器才是具体的负责执行游戏相关逻辑的服务器。 从界面上看的话,游戏房间服务器就是我们实际玩游戏的房间。 大型在线游戏系统-总结 这里提到的三类服务器,在Windows服务器上,我们均可采用完成端口模型。 每个服务器最多连接数目是5000人,但是,在游戏房间服务器上我们可以设置业务逻辑限定,最多只允许300人同时在线。其他两个服务器仍然允许最多5000人的同时在线。 大型在线游戏系统-总结 如果按照这样的结构来设计,那么要实现百万人的同时在线就应该是这样: 首先是登陆服务器,在各地设置一定数量的登陆机器。 大型在线游戏系统-总结 其次是大厅,1000000

文档评论(0)

wxc6688 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档