首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
在MMO游戏中,网络通信与游戏逻辑处理进程一般是分离的。请您
[问答题]
在MMO游戏中,服务器采用Linux操作系统,网络通信与游戏逻辑处理进程一般是分离的。
例如:GameSvr进程处理游戏逻辑,TCPSvr进程处理网络通信。Linux操作系统提供了很多机制可以实现GameSvr和TCPSvr进程之间的数据通信。请您列出两种你认为最好的机制来,并为主(最好)次(次佳)描述他们实现的框架,优缺点对比和应用中的注意事项。
添加笔记
求解答(0)
邀请回答
收藏(25)
分享
纠错
4个回答
添加回答
2
勤勉だYeYe
考的应该是进程间的通信,一般有信号、信号量、消息队列和内存共享,个人认为在MMO这种对实时响应要求比较高的应用场合,使用消息队列有点太慢了(比如Android的Broadcast),内存共享还是比较靠谱的,但是要注意设置互斥量。
发表于 2015-08-07 15:06:30
回复(0)
2
牛客710882号
TCP通信是首选,TcpSrv->GameSrv,方便随时扩容,但我们知道贵腾喜欢共享内存,so,makeinterviewerHappy,最好的机制是共享内存!!(笑...
----------严肃点------------
首先,需要隔离性,不能更新的逻辑崩溃了影响别人,需要可扩展性,需要解耦,需要高性能(打字累,大概这些。。。。
编辑于 2015-04-19 19:37:18
回复(0)
0
dark_flash
参考linux高性能服务器,应该是采用reactor和proactor的模式,reactor是主线程通知工作线程去做,工作线程完成后返回处理结果,是多路复用中的同步方法,而proactor是主线程通知内核去处理,当内核完成后返回结果给主线程,是多路复用技术中的异步方法
发表于 2016-09-23 06:49:59
回复(0)
0
格子灰
这问题是问游戏架构吗?
答:P2P结构、会话厅结构、C/S结构
服务器的运行流程如下:
(1)创建一个套接字,绑定IP和端口。
(2)服务器监听端口,等待连接。创建一个游戏大厅。
(3)服务器处于等待状态,因此需要两个进程/线程在服务器端运行:一个界面线程,处理游戏菜单操作;一个网络线程,等待连接。
(4)在每个客户端创建一个Socket,连接游戏服务器。
(5)服务器更新连接信息,并在游戏大厅上显示。同时,将连接用户信息发送给每个连接用户。
(6)当所有的用户都连接到服务器上开始游戏,关闭服务器侦听的套接字,中断所有等待的连接,新的用户将不可能连接上服务器。
发表于 2016-07-26 23:46:36
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
Linux
腾讯
网络基础
系统设计
上传者:
西红柿嘎嘣脆
难度:
4条回答
25收藏
14520浏览
热门推荐
相关试题
RARP的作用是什么?
华为
网络基础
评论
(17)
系统设计题:设计一个服务调度管理器...
百度
高级算法
系统设计
评论
(1)
UDP使用什么提供可靠性?
华为
网络基础
评论
(33)
设某二叉树的先序遍历序列为abdg...
树
评论
(1)
2022 诺瓦科技 Perl re...
perl
System Verilog
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题