[毕业设计求助]基于分布式服务器架构的益智休闲游戏大厅的实现

xmanner 2009-07-16 04:45:01
各位大哥,小弟对socket编程很有兴趣,因此选了这个毕设选题。
老师没有要求服务器端用分布式架构,是我自己想的。(他只要求服务端通讯模型用完成端口)
现在的情况是这样:开发环境Win32,开发工具.NET 2005,语言C/C++,数据库应该用SQL server2000,使用环境是局域网。

我想做成类似QQ游戏那样的游戏平台(就一个简单点的平台,不准备涉及动态负载跟加解密之类的技术,因为技术水平有限),而后加入一到两款小游戏供用户使用。
但以前没做过分布式服务器的工程,因此这几天查了一下资料,大致对分布式服务器的架构有了浅显的了解。
初步是想划分:登陆服务器、大厅服务器、A游戏逻辑服务器、B游戏逻辑服务器、数据库服务器。

不知道这样子的结构划分有没什么问题,希望各位大哥能指导一下。
另外就是服务器之间用何种方式进行通讯的问题,是使用socket吗,还是使用一些windows下的进程通讯机制呢?如果使用socket通讯的话该用哪种通讯模型呢(服务器之间的通讯用UDP可以吗)?
还有就是IOCP的通讯模型用在哪里?(感觉不需要使用在登陆服务器与用户的交互上,用在大厅服务器跟游戏逻辑服务器上似乎合适点。)

因为没实际开发经验,所以还希望各位能够多多指导,拜谢各位:)
...全文
453 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
sherrik 2009-07-17
  • 打赏
  • 举报
回复
下个学期也做毕设的飘过
driverstudent 2009-07-17
  • 打赏
  • 举报
回复

mark
fangle6688 2009-07-17
  • 打赏
  • 举报
回复
大厅服务器使用IOCP与客户端通信
大厅服务器通常将用户请求队列化后与游戏服务器进行socket长连接异步通信
Leo_red 2009-07-17
  • 打赏
  • 举报
回复
进来学习~
xmanner 2009-07-17
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 fangle6688 的回复:]
和分布式无关,所谓的分布式应用是指:

将一个应用按功能模块化之后,将各模块打散封装成远程对象,部署到不同的服务器上,各模块之间通过Interface互相访问
分布式应用的现实例子,在JAVA阵营,是EJB;在MS阵营,是COM+

你所提到的登录服务器、大厅服务器、游戏逻辑服务器,这不叫分布式应用,这是多个应用之间的协同工作
你能在你的登录服务器里创建一个“大厅服务器实例”吗?

你把问题搞复杂了

商业网站…
[/Quote]
谢谢指教~
但我想加入数据库读写的部分..所以一个专门用于验证的服务器应该是需要的~
我是想模拟QQ游戏平台的运行过程..就是服务器启动 - 接受用户登陆 - 服务器验证 - 用户根据游戏选择大厅 - 用户入座 - 开始游戏 - 关闭游戏 - 退出房间 - 服务器关闭这样的过程~(也就是想着如何把多个服务协同好)
现在困扰我的就是多个服务器之间用什么方式通讯~哪些服务是直接面对用户的~因为没有这样的设计经验..
以前课程设计的时候我做过单一的IOCP的服务器..每有一个新连接..就用GDI在每个客户端上把连接这个代表的精灵画出来..没专门测试过..但效率应该不高
所以我想请教下IOCP高并发服务器的设计要点..跟如何模拟大批量登陆呢?
再次感谢..
fangle6688 2009-07-17
  • 打赏
  • 举报
回复
和分布式无关,所谓的分布式应用是指:

将一个应用按功能模块化之后,将各模块打散封装成远程对象,部署到不同的服务器上,各模块之间通过Interface互相访问
分布式应用的现实例子,在JAVA阵营,是EJB;在MS阵营,是COM+

你所提到的登录服务器、大厅服务器、游戏逻辑服务器,这不叫分布式应用,这是多个应用之间的协同工作
你能在你的登录服务器里创建一个“大厅服务器实例”吗?

你把问题搞复杂了

商业网站搞出一个单独的登录服务器的原因是他们需要对登录用户进行身份验证,他们提供的应用种类很多
而身份验证过程又与应用无关(不管你是要玩游戏还是要发邮件你都要登录),所以才会专门搞一些登录服务器

你根本就没必要搞独立的登录服务器,更何况你老师没有要求你的用户必须注册,登录时必须验证身份后才能进大厅,你甚至连验证过程都可以省略


你需要专心研究的,仅仅是如何实现一个效率尚可的IOCP服务器
大厅类应用属于长连接应用,用户进入大厅后,只要不主动退出,socket连接需要一直保持
以普通的PC机的性能,能达到5000个并发长连接,你就成功了
xmanner 2009-07-16
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 fangle6688 的回复:]
你老师的课题实际上就是要你用IOCP实现一个大并发访问服务器,和游戏完全无关

因为“大厅”这东西实际上是通用的,你可以拿来做游戏,也可以拿来干别的,“大厅”的概念就是能容纳很多人,是一个社交撮合场合
至于人们在大厅里找到伙伴后是去玩游戏还是去谈生意,无所谓

所以,既然你要设计的东西是一个“大厅”
其要点就是能容纳很多人,也就是能支持较大的并发连接数

你能让5000人同时登陆,并从服务器获取当前…
[/Quote]
对..
所以我的设计重点就是想放在服务器端的部分..
但是因为没做过分布式的..所以不太清楚结构的部分..
其实以前也做过IOCP跟其他模型的C/S程序..但是都只是在单机环境下调试的~也不知道我这个配置的电脑能达到多少并发连接数才算合适~
不知道您能否就这个问题谈下具体设计方面注意的要点呢?..
比如如何提高效率之类的..
Conry 2009-07-16
  • 打赏
  • 举报
回复
都用IOCP
服务器之间的通讯用TCP
fangle6688 2009-07-16
  • 打赏
  • 举报
回复
你老师的课题实际上就是要你用IOCP实现一个大并发访问服务器,和游戏完全无关

因为“大厅”这东西实际上是通用的,你可以拿来做游戏,也可以拿来干别的,“大厅”的概念就是能容纳很多人,是一个社交撮合场合
至于人们在大厅里找到伙伴后是去玩游戏还是去谈生意,无所谓

所以,既然你要设计的东西是一个“大厅”
其要点就是能容纳很多人,也就是能支持较大的并发连接数

你能让5000人同时登陆,并从服务器获取当前在线用户列表数据,你的毕设基本就算成功了
xmanner 2009-07-16
  • 打赏
  • 举报
回复
对..主要就是服务器这块~现在就是想弄清楚服务器的架构还有内部通讯方式是怎样的..
老师跟我说过只专注游戏大厅的实现也可以..
只是我有一个以前做过的游戏的实例..改成网络版的应该不难~所以我就想兼顾了..
美化那方面我应该不会重点去弄~
dl551djs 2009-07-16
  • 打赏
  • 举报
回复
题目比较大,做个简单的斗地主和五子棋还是不太难。
主要就是要看服务器之间的通信,通讯做好了,毕业设计也就做好了。
还有GDI+可能也最好学一下。
还有界面美化是很需要时间的。
建议先别弄这么复杂,把服务器通讯做好了再去做其他的游戏、界面、加解密、保存、复盘等功能
bragi523 2009-07-16
  • 打赏
  • 举报
回复
没做过游戏
但是网络连接比较容易实现,网上实例很多
多线程也不难,做好同步就成了
dulvtianya 2009-07-16
  • 打赏
  • 举报
回复
你们都是牛人啊,敢问楼上的和楼主是哪所牛校上的学啊??
NineheadedBird 2009-07-16
  • 打赏
  • 举报
回复
别分布式的了 点对点就够了 哈哈 我以前的毕业设计就是点对点 双人 游戏
xmanner 2009-07-16
  • 打赏
  • 举报
回复
汗..我本质不是装逼= =是真心求教~
是这样的~有一款小游戏..是以前我做过的~
所以比较熟悉..加上通讯协议改成网络版不难..
这个毕业设计简化一下就是
C/S结构..数据库的操作~用户验证..还有就是游戏大厅的实现..
只是我表达地二逼了一点..就想了个"分布式"这样的名字= =
主要是对游戏服务器的架构跟通讯机制不太了解~还有多线程机制..
很多知识也都是应用得不够熟练..其实也是想做毕设的机会提高一下..
icefairy 2009-07-16
  • 打赏
  • 举报
回复
N人啊 俺是来学习滴
hfcarrey 2009-07-16
  • 打赏
  • 举报
回复
现在学生真厉害.我上学那会,想想真是傻,啥也不会,哎!
也是觉得题目有点大了.
xmanner 2009-07-16
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 skyxie 的回复:]
什么学校,现在才开始毕业设计???
[/Quote]
大三刚刚结束。
准备大四了,学校把毕设答辩时间提前,所以开始做毕设的时间也早了。
xmanner 2009-07-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 jyh_baoding 的回复:]
题目有点大
[/Quote]
额,我是想完成一个简单点的平台。
也可以对以前学的东西做个综合。
skyxie 2009-07-16
  • 打赏
  • 举报
回复
什么学校,现在才开始毕业设计???
加载更多回复(2)

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧