
Server
pizi0475
这个作者很懒,什么都没留下…
展开
-
集群式游戏服务器架构方案设计开发
自从2003年开发VOIP Radius Server以及修改Gnugk以来,从事服务器开发已经近五年了,对服务器开发也有一些自己独到的看法以及见解。当摆脱了技术本身的束缚之后,才理解重要的并不是某种技术的运用,而是整体设计的考虑,也慢慢明白了设计是开发的灵魂的道理。从技术层面来看,各个平台都有一些自己特有的东西,比如Windows 平台下面的IOCP技术,可以说为了支持大的并发,IOCP是一个Windows平台的必选方案。而在Linux下面Epoll又是所有开发人员需要掌握的技术。当然还有FreeBSD下转载 2010-07-04 10:43:00 · 2630 阅读 · 0 评论 -
大整数乘法
通常,在分析算法的计算复杂性时,都将加法和乘法运算当作基本运算来处理,即将执行一次加法或乘法运算所需的计算时间,当作一个仅取决于计算机硬件 处理速度的常数。这个假定仅在参加运算的整数能在计算机硬件对整数的表示范围内直接处理才是合理的。然而,在某些情况下,要处理很大的整数,它无法在计算 机硬件能直接表示的整数范围内进行处理。若用浮点数来表示它,则只能近似的表示它的大小,计算结果中的有效数字也受到转载 2015-07-07 20:37:12 · 1464 阅读 · 0 评论 -
矩阵求导公式
今天推导公式,发现居然有对矩阵的求导,狂汗--完全不会。不过还好网上有人总结了。吼吼,赶紧搬过来收藏备份。基本公式:Y = A * X --> DY/DX = A'Y = X * A --> DY/DX = AY = A' * X * B --> DY/DX = A * B'Y = A' * X' * B --> DY/DX = B * A'1. 矩阵Y对标量x转载 2015-07-07 20:39:42 · 3891 阅读 · 0 评论 -
TCP协议与UDP协议的区别
TCP协议与UDP协议的区别 首先咱们弄清楚,TCP协议和UCP协议与TCP/IP协议的联系,很多人犯糊涂了,一直都是说TCP/IP协议与UDP协议的区别,我觉得这是没有从本质上弄清楚网络通信!TCP/IP协议是一个协议簇。里面包括很多协议的。UDP只是其中的一个。之所以命名为TCP/IP协议,因为TCP,IP协议是两个很重要的协议,就用他两命名了。TCP/IP协议集包括应用层,转载 2015-07-07 20:27:53 · 1026 阅读 · 0 评论 -
针对TCP连接异常断开的分析
我们知道,一个基于TCP/IP的客户端-服务器的程序中,正常情况下,我会是启动服务器使其在一个端口上监听请求,等待客户端的连接;通过TCP的三次握手,客户端能够通过socket建立一个到服务器的连接;然后,两者就可以基于这个socket连接通信了。连接结束后,客户端(进程)会退出;在不需要继续处理客户请求的情况下,服务器(进程)也将退出。而且,当一个进程退出的时候,内核会关闭所有由这个进程打开的套转载 2015-07-07 20:32:21 · 1965 阅读 · 0 评论 -
Unity3D教程宝典之Web服务器篇
Web服务器可以做什么?1 页游呀。2.移动平台上面的网游, 因为移动平台的网游大多属于非实时性,所以一般都使用的是基于http协议的web方式。3.移动平台上单机游戏的功能开关,iTunes平台更新一款游戏的审核时间不短,服务器开关可以实现控制 广告开关,游戏难度,公告板等等第一讲:Web服务器的架设http://blog.sina.com.cn/s/blog_47113转载 2015-07-15 10:55:54 · 2555 阅读 · 0 评论 -
select、poll、epoll之间的区别总结
select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,而异步I/O则无需自己负责进行读写,异步I/O的实现会负责把数据从内核拷贝到用转载 2015-07-07 20:29:19 · 965 阅读 · 0 评论 -
Unity 网络通信
http://blog.youkuaiyun.com/chenggong2dm/article/details/7896440 最新消息:在11月2日的开发者大会上,我问了一下unity的人,会不会对网络层进行封装和改进,unity的人表示,最晚5.0,最快4.x版本里,就会加入新的网络通信接口,他们已经在测试阶段了。 翻了半天unity的API,也没有发现可以处理S转载 2015-07-15 10:57:54 · 8978 阅读 · 0 评论 -
UE4与WEB服务器交互(json)
http://www.uedev.org/forum.php?mod=viewthread&tid=114&extra=page%3D1概述制作游戏在很多情况下需要和WEB服务器进行交互,最常见的是在做Demo时需要通过游戏向WEB服务器传递数据(登录/注册验请求),WEB服务器处理(操作数据库)之后返回结果并调用指定的方法。 该教程简单介绍了如何通过UE4向WEB服务器(PHP)转载 2015-08-03 11:57:42 · 11788 阅读 · 1 评论 -
UE4 服务器同步
UE4 服务器同步Actor 的同步 根据“网络连接概述”中所述,Actor 是实现同步的主要推动者。服务器将保留一份 Actor 列表并定期更新客户端, 以便客户端保留每个 Actor (那些需要被同步的Actor)的近似复本。Actor 主要通过两种方式进行更新:属性更新RPC (远程过程调用)。属性更新和 RPC 的主要区别在于,属转载 2016-06-29 09:05:16 · 5091 阅读 · 0 评论 -
UE4 服务器模式
UE4 服务器模式概述UE4 架构在构建时就充分考虑了多人游戏因素。只要您遵守基本的架构原则,通常就无需太费事即可将单人游戏体验扩展为多人游戏。UE4 网络连接是基于服务器/客户端模式构建。也就是说,这个模式中有一个担当主控(authoritative)的服务器端(做出所有重要决定),用于确保所有连接的客户端可以持续更新,以便其持续获得服务器环境的最新近似复本。Ac转载 2016-06-29 09:06:13 · 5024 阅读 · 0 评论 -
UE4 连接自定义服务器
UE4 连接自定义服务器在虚幻引擎中连接自定义服务器 UE4 dedicated server是一个很好的游戏服务器,但是对于大厅和聊天服务器来说,我们要自行开发,通过UE4的socket组建很方便的和其他服务器建立连接创建SocketFSocket* Socket = ISocketSubsystem::Get(PLATFORM_SOCKETSUBSYSTEM转载 2016-06-29 09:07:17 · 7603 阅读 · 2 评论 -
ue4 服务器登陆流程
http://blog.youkuaiyun.com/xiaozhi0999/article/details/51393704ue4中,客户端登陆流程如下,调用UEngine::Browse方法,在这个方法中,判断如果是客户端,则创建UPendingNetGame实例,代码如下:[cpp] view plain copy print?转载 2016-06-29 09:08:56 · 4496 阅读 · 0 评论 -
ue4 网络代码分析
http://blog.youkuaiyun.com/xiaozhi0999/article/details/51326200ue4实现了rpc,还是比较好用的,下面简单分析一下ue4网络部分的实现。ue4中主要处理网络的类是UNetDriver, UNetDriver类中有如下两个成员[cpp] view plain copy print?转载 2016-06-29 09:09:55 · 2498 阅读 · 0 评论 -
简单的模拟多线程引用计数原理
大家都知道多线程编程学习中有一个很重要的东西——引用计数,一个线程的生或死或运行状态都跟这个计数有关,他同样是在适当的时候加加减减的。这篇文章的目的就是模拟下简单的引用计数,原因是因为项目中GateServer莫名宕机,而且运维没有给过来宕机详细信息中的偏移地址,所以纵然我们又cod文件也没法查找问题所在,所以就想出了这样一个笨办法,在每个函数都加上调用计数,这样超过一定次数的我们就认为它可能是死转载 2015-07-07 20:35:42 · 1600 阅读 · 0 评论 -
无缝地图揭秘
转载 2011-09-09 17:23:22 · 2656 阅读 · 0 评论 -
游戏服务器架构探讨
这里讨论的游戏服务器架构大概是目前国内乃至世界上的网游通用的一种架构了:http://bbs.gameres.com/showthread.asp?threadid=93775作者:qinglan有段时间没有研究技术了,这次正好看到了新版的mangos,较之以前我看的版本有了比较大的完善,于是再次浏览了下他的代码,也借此机会整理下我在游戏服务器开发方面的一些心得,与大家探讨。 另外由于为避免与公司引起一些不必要的纠纷,我所描述的全都是通过google能够找到的资料,所以也可以认为我下面的内容都是网上所找资料转载 2010-07-04 10:50:00 · 2287 阅读 · 0 评论 -
一种经典的网络游戏服务器架构
首先,二话不说,上图(用Windows画图画的。。。)这个图是一个区的架构图,所有区的架构是一样的。上面虚线框的ServerGroup和旁边 方框内的架构一样。图上的所有x N的服务器,都是多台一起的。红线,绿线,和蓝线图上也有图示,这里就不多介绍了。关于Agent Server大家也能看出来,其实就是Gate。这里主要介绍下图上的标记了号码的位置的数据连接的内容和意义。1-转载 2010-05-18 23:00:00 · 2313 阅读 · 1 评论 -
小谈Online-game服务器端设计
谈这个话题之前,首先要让大家知道,什么是服务器。在网络游戏中,服务器所扮演的角色是同步,广播和服务器主动的一些行为,比如说天气,NPC AI之类的,之所以现在的很多网络游戏服务器都需要负担一些游戏逻辑上的运算是因为为了防止客户端的作弊行为。了解到这一点,那么本系列的文章将分为两部分来谈谈网络游戏服务器的设计,一部分是讲如何做好服务器的网络连接,同步,广播以及NPC的设置,另一部分则将着重谈谈哪些逻辑放在服务器比较合适,并且用什么样的结构来安排这些逻辑。<br /><br /><br />服务器的网络连接转载 2010-10-23 22:00:00 · 2021 阅读 · 0 评论 -
游戏服务器中的数据库异步操作技术和游戏数据的保存机制
<br /> 在游戏服务器中,处理玩家登陆需要向数据库查询玩家的账号和密码,玩家上线和下线需要对玩家的角色数据从数据库中读取和保存。可以说,相对于游戏逻辑处理来说,数据库操作是一种相对很慢的操作,即便你通过使用多个线程多个数据库连接来提高数据库操作的处理能力,但是,在高并发高负载的服务器应用中,这样仍然会是相当的负载瓶颈。设想这样一种设计方案,见下图:<br /><br /> 在大量玩家登陆游戏服务器时,由于有大量的数据库访问请求,即便是有自己实现的CACHE机制,还是会导致服务器耗尽所有的逻辑转载 2010-10-23 21:56:00 · 1896 阅读 · 0 评论 -
游戏服务器架构设计中的一些思考
<br />1、 游戏世界由很多个游戏对象组成(游戏角色、物品、NPC、技能等);<br /> <br />2、 一个游戏对象的有效数据主要存放在客户端、游戏服务器和持久性数据库中;<br /> <br />3、 游戏对象的处理可划分为与位置有关的和与位置无关的,如公会处理、物品处理等主要行为可以看作是与位置无关的处理,而NPC(AI)、战斗、移动这类的主要行为可以看成是与位置有关的。<br /> <br />4、 从客户端的角度来看,游戏行为可分为四类动作:<br />a) 来自服务器端的转载 2010-10-23 21:57:00 · 2107 阅读 · 0 评论 -
Socket编程中的同步、异步、阻塞和非阻塞
<br />Socket编程中的同步、异步、阻塞和非阻塞<br /> <br />2010-04-18 19:07<br />在进行网络编程时,我们常常见到同步、异步、阻塞和非阻塞四种调用方式。这些方式彼此概念并不好理解。下面是我对这些术语的理解。<br />同步<br />所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。按照这个定义,其实绝大多数函数都是同步调用(例如sin, isdigit等)。但是一般而言,我们在说同步、异步的时候,特指那些需要其他部件协作或者需要一定时间完成的转载 2011-03-28 18:25:00 · 1807 阅读 · 1 评论 -
使用新的线程池 API 提高可伸缩性
随着 Windows Vista® 的发布和 Windows Server® 2008 的即将问世,Microsoft 为托管应用程序的开发人员提供了改进的 Windows® 平台,它包含多种新技术,使得令原本 Windows 开发人员从中受益的改进能被广为利用。例如,自从 Windows 2000 发布以来,已是该平台组成部分的线程池组件经历了一次完整的体系结构重建。新的实现包含一个新的线程池 API,该 API 可以让开发人员更加轻松地编写正确的代码。传统的 API 仍受支持,所以传统的应用程序可以继续转载 2011-03-28 18:27:00 · 2343 阅读 · 0 评论 -
Windows Socket五种I/O模型——代码全攻略
如果你想在Windows平台上构建服务器应用,那么I/O模型是你必须考虑的。Windows操作系统提供了选择(Select)、异步选择(WSAAsyncSelect)、事件选择(WSAEventSelect)、重叠I/O(Overlapped I/O)和完成端口(Completion Port)共五种I/O模型。每一种模型均适用于一种特定的应用场景。程序员应该对自己的应用需求非常明确,而且综合考虑到程序的扩展性和可移植性等因素,作出自己的选择。我会以一个回应反射式服务器(与《Windows网络编程》第八章一转载 2011-03-24 21:14:00 · 2143 阅读 · 0 评论 -
socket阻塞和非阻塞的区别
<br />简单点说:<br />阻塞就是干不完不准回来, <br />非组赛就是你先干,我现看看有其他事没有,完了告诉我一声<br />我们拿最常用的send和recv两个函数来说吧... <br />比如你调用send函数发送一定的Byte,在系统内部send做的工作其实只是把数据传输(Copy)到TCP/IP协议栈的输出缓冲区,它执行成功并不代表数据已经成功的发送出去了,如果TCP/IP协议栈没有足够的可用缓冲区来保存你Copy过来的数据的话...这时候就体现出阻塞和非阻塞的不同之处了:对于阻塞模转载 2011-03-28 18:22:00 · 1467 阅读 · 0 评论 -
TCP同步与异步及阻塞模式,多线程+阻塞模式,非阻塞模式简单介绍
<br />首先我简单介绍一下同步TCP编程 与异步TCP编程。<br />在服务端我们通常用一个TcpListener来监听一个IP和端口。客户端来一个请求的连接,在服务端可以用同步的方式来接收,也可以用异步的方式去接收。比如:<br />TcpListene server = new TcpListener(IPAddress.Parse("127.0.0.1"), port);<br />TcpClient tc =server.AcceptTcpClient();<br />这里就一个同步接收的方式转载 2011-03-28 18:23:00 · 5549 阅读 · 1 评论 -
基于Socket的多线程和异步非阻塞模式编程
<br /> 刚开始接触socket的编程的时候,遇到了很多的问题,费了很大劲搞懂。其实往往都是一些比较基本的知识,但是都是很重要的,只要对其熟练的掌握后,相信对基于网络的编程会有很大的提高,呵呵。<br /> 就拿基于C/S结构的例子来说,我们先看看服务器和客户端的流程(异常处理就省略了):<br /> <br /> 服务器:<br /> //初始化<br /> WSAData wsaData;<br />转载 2011-03-28 18:24:00 · 3850 阅读 · 1 评论 -
MMORPG服务器组集群方案
http://www.cppblog.com/flashboy/archive/2010/07/09/119830.html1. LoginApp即登录服务器, 它主要完成玩家帐号的验证, 同时它通过BaseAppMgr并向玩家发送一个SessionKey作为基础服务器(转载 2011-07-22 17:53:49 · 1514 阅读 · 0 评论 -
无缝地图的优缺点(NCSOFT: Jason Beardsley)
MMP游戏究竟要实现一个无缝世界还是一个分区世界是一个至关重要的决定,而且这个决定必须在游戏设计的早期就做出。这个选择对游戏的每个方面(从设计和程序开始,然后是美工制作和游戏世界构筑,最后贯穿游戏的实际运营和维护)会产生什么样的影响并不是显而易见的!无缝世界模式的优点1.转载 2011-09-09 17:48:54 · 2980 阅读 · 0 评论