
服务器设计
文章平均质量分 60
阳澄居士
喜爱编程 ,崇尚资源共享,信息开放,做一个忠实的开源信奉者。
展开
-
关于Socket和IOCP的一些值得注意的地方
关于Socket和IOCP的一些值得注意的地方 关于Socket和IOCP的一些值得注意的地方收藏 IOCP是一整套高性能的IO操作异步模型,可以用在文件操作也可以用在网络SOCKET操作上面。当用在网络SOCKET上时,在服务器端主要配合AceeptEx WSASend WSASendto来使用,在客户机端主要配合ConnectEx WSARecv和WSARecvFrom来原创 2009-08-07 07:54:00 · 2441 阅读 · 0 评论 -
自定义应用层通信协议
自定义应用层通信协议(1) 标签:通信协议 要素 1.通信协议的概念及其要素在OSI开放互联参考模型中,对等实体之间数据单元在发送方逐层封装,在接收方的逐层解析。发送方N层实体从N+1层实体得到的数据包称为服务数据单元(Service Data Unit,SDU)。N层实体只将其视为需要本实体提供服务的数据,将服务数据单元进行封装,使其成为一个对方能够理解的数据单元(Prot转载 2010-01-09 12:11:00 · 7357 阅读 · 0 评论 -
VC实现简单Http连接
VC实现简单Http连接关键字/核心提示:连接,实现,简单,一、引言WindowsSocketAPI是一套开放的、支持多种协议的Windows下的网络编程接口,它包括一个标准的BerkeleySocket功能调用的集合,以及为Windows所作的重要扩充。WindowsSocket经过不断完善并在众多公司的全力支持下,已成为Windows网络编程的事实上的标... 一、引言转载 2010-05-24 23:43:00 · 2508 阅读 · 0 评论 -
网络游戏服务器设计
网络游戏服务器设计 谈这个话题之前,首先要让大家知道,什么是服务器。在游戏中,服务器所扮演的角色是同步,广播和服务器主动的一些行为,比如说天气,NPC AI之类的,之所以现在的很多网络游戏服务器都需要负担一些游戏逻辑上的运算是因为为了防止客户端的作弊行为。了解到这一点,那么本系列的文章将分为两部分来谈谈网络游戏服务器的设计,一部转载 2010-05-28 17:56:00 · 1572 阅读 · 0 评论 -
游戏服务器的架构设计
游戏服务器的架构设计<br />游戏服务器的设计是一项颇有挑战性的工作,游戏服务器的发展也由以前的单服结构转变为多服机构,甚至出现了bigworld引擎的分布式解决方案,最近了解到Unreal的服务器解决方案atlas也是基于集群的方式。<br />负载均衡是一个很复杂的课题,这里暂不谈bigworld和atlas的这类服务器的设计,更多的是基于功能和场景划分服务器结构。<br />首先说一下思路,服务器划分基于以下原则:<br />1:分离游戏中占用系统资源(cpu,内存,IO等)较多的功能,独立成服务器转载 2010-11-07 22:46:00 · 1070 阅读 · 0 评论 -
小谈Online-game服务器端设计
<br />小谈Online-game服务器端设计 <br /> 谈这个话题之前,首先要让大家知道,什么是服务器。在网络游戏中,服务器所扮演的角色是同步,广播和服务器主动的一些行为,比如说天气,NPC AI之类的,之所以现在的很多网络游戏服务器都需要负担一些游戏逻辑上的运算是因为为了防止客户端的作弊行为。了解到这一点,那么本系列的文章将分为两部分来谈谈网络游戏服务器的设计,一部分是讲如何做好服务器的网络连接,同步,广播以及NPC的设置,另一部分则将着重谈谈哪些逻辑放在服务器比较合适,并且用什么样的结构来安转载 2010-11-07 23:04:00 · 1245 阅读 · 0 评论 -
游戏服务器架构探讨
<br />游戏服务器架构探讨 <br />这里讨论的游戏服务器架构大概是目前国内乃至世界上的网游通用的一种架构了:<br />http://bbs.gameres.com/showthread.asp?threadid=93775<br />作者:qinglan<br />有段时间没有研究技术了,这次正好看到了新版的mangos,较之以前我看的版本有了比较大的完善,于是再次浏览了下他的代码,也借此机会整理下我在游戏服务器开发方面的一些心得,与大家探讨。 <br />另外由于为避免与公司引起一些不必要的纠转载 2010-11-07 23:15:00 · 2489 阅读 · 2 评论 -
集群式游戏服务器架构方案设计开发
<br /> 集群式游戏服务器架构方案设计开发 <br />自从2003年开发VOIP Radius Server以及修改Gnugk以来,从事服务器开发已经近五年了,对服务器开发也有一些自己独到的看法以及见解。当摆脱了技术本身的束缚之后,才理解重要的并不是某种技术的运用,而是整体设计的考虑,也慢慢明白了设计是开发的灵魂的道理。<br />从技术层面来看,各个平台都有一些自己特有的东西,比如Windows 平台下面的IOCP技术,可以说为了支持大的并发,IOCP是一个Windows平台的必选方案。而在Lin转载 2010-11-07 23:18:00 · 1460 阅读 · 0 评论 -
游戏服务器设计缺陷让其他计算机易受到攻击
游戏服务器设计缺陷让其他计算机易受到攻击<br /> <br />一家网络安全公司上周四声称,多玩家游戏服务器允许游戏者在虚拟世界中彼此攻击,而这些服务器有可能成为网络犯罪分子用来攻击其它计算机的最新工具。<br /><br /> 这家名为PivX Solutions的公司在自己的网站上公布了一份建议,声称那些使用Game Spy(游戏间谍)网络服务器的多玩家游戏——如“雷神之锤3”、“虚拟锦标赛2003”以及“战场1942”——有可能被利用来提高“拒绝服务”攻击的破坏力,在某些情况下可能高达400倍。<转载 2010-11-07 23:35:00 · 985 阅读 · 0 评论 -
游戏服务器架构设计中的一些思考
<br /> 游戏服务器架构设计中的一些思考<br />1、 游戏世界由很多个游戏对象组成(游戏角色、物品、NPC、技能等);<br />2、 一个游戏对象的有效数据主要存放在客户端、游戏服务器和持久性数据库中;<br />3、 游戏对象的处理可划分为与位置有关的和与位置无关的,如公会处理、物品处理等主要行为可以看作是与位置无关的处理,而NPC(AI)、战斗、移动这类的主要行为可以看成是与位置有关的。<br />4、 从客户端的角度来看,游戏行为可分为四类动作:<br />a) 来自服务器端原创 2010-11-07 22:55:00 · 1320 阅读 · 0 评论 -
C/C++:构建你自己的插件框架(1)
分类: C/C++原文地址:http://www.ddj.com/cpp/204202899?cid=RSSfeed_DDJ_C 本文译自Gigi Sayfan在DDJ上的专栏文章。Gigi Sayfan是北加州的一个程序员,email:gigi@gmail.com. 本文是一系列讨论架构、开发和部署C/C++跨平台插件框架的文章的第一篇。第一部分探索了一下现状,调查了许多现有的插件/组件库,深入研究了二进制兼容问题,并展现了一些该方案必要的一些属性。后续的文章用一个例子展示了可用于Window、Linux转载 2011-02-26 22:41:00 · 3301 阅读 · 2 评论 -
平台+插件软件设计思想及基于COM的原型实现
<br /> <br />平台+插件软件设计思想及基于COM的原型实现<br />goldboar<br /> 引言:我们已经习惯于一个人独立进行软件开发,每个人都使用自己的风格进行程序设计,但随着工程项目变大或者是对时间要求比较紧时,就需要几个人,十几个人,甚至是上百个人协作进行软件开发与设计,这时一个比较棘手的问题就是如何将若干人所编写的软件代码(有可能是链接库、组件)进行无缝地集成,纵然进行源代码集成是个比较传统也比较成熟的方式,适当使用链接库或组件,也可减少源代码的泄露,但经常的情况是每一次的程转载 2011-02-26 23:56:00 · 1651 阅读 · 0 评论 -
C/C++:构建你自己的插件框架(2)
C/C++:构建你自己的插件框架(2)zz2010-06-15 11:07<br />译者 raof01<br /> http://blog.chinaunix.net/u/12783/showart_1086995.html<br />本文是关于开发跨平台C++插件系列的第二篇。第一篇详细描述了问题,探索了一些解决方案,并介绍了插件框架。本部分描述了架构以及构件在插件框架上,基于插件的系统的设计,插件的生命期,以及通用插件框架的内部。小心:代码遍布文章各个部分。<br />基于插件系统的架构<br转载 2011-02-26 23:01:00 · 2457 阅读 · 0 评论 -
基于TCP的socket编程
基于TCP的socket编程(聊天室程序例解) 基于TCP的socket编程关键词: VC sockets(套接字)编程有三种,流式套接字(SOCK_STREAM),数据报套接字(SOCK_DGRAM),原始套接字(SOCK_转载 2010-01-07 16:41:00 · 1644 阅读 · 1 评论 -
解决TCP网络传输“粘包”问题
解决TCP网络传输“粘包”问题作者:杨小平 王胜开原文出处:http://www.ciw.com.cn/ 当前在网络传输应用中,广泛采用的是TCP/IP通信协议及其标准的socket应用开发编程接口(API)。TCP/IP传输层有两个并列的协议:TCP和UDP。其中TCP(transport control protocol,传输控制协议)是面向连接的,提供高可靠性服务。UDP(user da转载 2010-02-02 14:58:00 · 2202 阅读 · 0 评论 -
TCP分包算法
针对三种不同的粘包现象,分包算法分别采取了相应的解决办法。其基本思路是首先将待处理的接收数据流(长度设为m)强行转换成预定的结构数据形式,并从中取出结构数据长度字段,即图5中的n,而后根据n计算得到第一包数据长度。 1)若n2)若n=m,则表明数据流内容恰好是一完整结构数据,直接将其存入临时缓冲区即可。 3)若n>m,则表明数据流内容尚不够构成一完整结构数据,需留待与下一包数据合并后再行处理。原创 2010-02-02 14:43:00 · 6127 阅读 · 0 评论 -
IOCP模型的总结
IOCP模型的总结IOCP(I/O Completion Port,I/O完成端口)是性能最好的一种I/O模型。它是应用程序使用线程池处理异步I/O请求的一种机制。在处理多个并发的异步I/O请求时,以往的模型都是在接收请求是创建一个线程来应答请求。这样就有很多的线程并行地运行在系统中。而这些线程都是可运行的,Windows内核花费大量的时间在进行线程的上下文切换,并没有多少时间花在线程运行上。再加原创 2009-08-10 22:45:00 · 1285 阅读 · 0 评论 -
WinSocket模型的探讨——完成端口模型(一)
WinSocket模型的探讨——完成端口模型(一)开发者在线 Builder.com.cn 更新时间:2008-01-26作者:一雨田 来源:优快云本文关键词: 端口模型 Winsocket 众所皆知,完成端口是在WINDOWS平台下效率最高,扩展性最好的IO模型,特别针对于WINSOCK的海量连接时,更能显示出其威力。其实建立一个完成端口的服务器也很简单,只要注意几个函数,了解原创 2009-08-10 23:09:00 · 732 阅读 · 0 评论 -
一个简单的IOCP(IO完成端口)服务器/客户端类(2/2)
5.1 文件传输 使用Winsock 2.0的TransmitFile 函数传输文件。TransmitFile 函数在连接的套接字句柄上传输文件数据。此函数使用操作系统的缓冲管理机制接收文件数据,在套接字上提供高性能的文件传输。在异步文件传输上有以下几个重要方面:l 除非TransmitFile 函数返回,否则不能再对套接字执行 发送 或 写入 操作,不然会原创 2009-08-10 22:54:00 · 1365 阅读 · 0 评论 -
异步IO、APC、IO完成端口、线程池与高性能服务器
异步IO、APC、IO完成端口、线程池与高性能服务器之一 异步IO背景:轮询 PIO DMA 中断 早期IO设备的速度与CPU相比,还不是太悬殊。CPU定时轮询一遍IO设备,看看有无处理要求,有则加以处理,完成后返回继续工作。至今,软盘驱动器还保留着这种轮询工作方式。 随着CPU性能的迅速提高,这种效率低下的工作方式浪费了大量的CPU时间。因此,中断工作方式开始成为普遍采用的技术。这种原创 2009-08-10 22:57:00 · 1174 阅读 · 0 评论 -
单播、组播、广播的区别和特点
单播、组播、广播的区别和特点 转自:http://run.bloghome.cn/posts/99860.html当前的网络中有三种通讯模式:单播、广播、组播,其中的组播出现时间最晚但同时具备单播和广播的优点,最具有发展前景。1.单播: 主机之间一对一的通讯模式,网络中的交换机和路由器对数据只进行转发不进行复制。如果10个客户机需要相同的数据,则服务器需要逐一传送,重复10次相同 的原创 2009-08-10 23:07:00 · 1031 阅读 · 0 评论 -
一个简单的IOCP(IO完成端口)服务器/客户端类(1/2)
一个简单的IOCP(IO完成端口)服务器/客户端类(1/2) 前言:源代码使用比较高级的IOCP技术,它能够有效的为多个客户端服务,利用IOCP编程API,它也提供了一些实际问题的解决办法,并且提供了一个简单的带回复的文件传输的客户端/服务器。 1.1 要求:l 文章要求读者熟悉C++, TCP/IP, 套原创 2009-08-10 22:48:00 · 1474 阅读 · 0 评论 -
QQ游戏百万人同时在线服务器架构实现
QQ游戏百万人同时在线服务器架构实现QQ游戏于前几日终于突破了百万人同时在线的关口,向着更为远大的目标迈进,这让其它众多传统的棋牌休闲游戏平台黯然失色,相比之下,联众似乎已经根本不是QQ的对手,因为QQ除了这100万的游戏在线人数外,它还拥有3亿多的注册量(当然很多是重复注册的)以及QQ聊天软件900万的同时在线率,我们已经可以预见未来由QQ构建起来的强大棋牌休闲游戏帝国。 那么,在技术原创 2009-08-28 11:35:00 · 1491 阅读 · 1 评论 -
进程服务器模型和线程服务器模型
进程服务器模型和线程服务器模型 点击这里下载文件: 进程服务器模型和线程服务器模型.doc服务器开发中模型的选择是决定程序运行的关键因素,最近开发的一个Linux下BT下载均衡器则抛弃了多线程模型,而采用了多进程模型,在不同的模型的选择过程中,自然涉及到了各自的优势和劣势。多进程模型服务器具有以下特点: 系统对立,功能清晰明显,可以同时启动多个进程,以提高系统的输出转载 2009-12-02 12:40:00 · 1336 阅读 · 0 评论 -
编写大容量和健壮的服务器系列—处理IOCP连接关闭
及时监测连接被动关闭 除非有特别要求,否则你应该总是对每个连接保持一个挂起的接收 pending io (使用 WSARecv 投递)。如果用户主动关闭连接,你的 GetQueuedCompletionStatus 调用将返回成功,但接收到的数据长度为 0 ,你能根据这点检测连接是否已被对方关闭。如果连接被重置或者 io 被取消(如果你调原创 2009-12-02 12:44:00 · 2647 阅读 · 2 评论 -
IOCP--Windows服务器编程之服务端代码
/*==========================================================================Purpose:This is a sample code that demonstrates for the following:* Use of the I/O Completion ports with WinSock. The原创 2009-12-02 13:11:00 · 2449 阅读 · 0 评论 -
Webgame 设计与开发
亲爱的读者,我是一名程序员,总怀着一种奢望,奢望去写本书。为什么称之为奢望呢?原因是一是经验不够丰富,二是工作紧张,时间有限,三是游戏阅历不深,四是游戏行业发展趋势不太明确,所以想写本关于游戏的书一直没有开始。近一年多来,随着对webgame的开发和理解,加上自身水平的的提高,感觉写本webgame的书时机已经成熟,关于该书的框架简单写了些,随着写作的深入,各个章节都将丰富。希望与原创 2009-12-02 20:58:00 · 1905 阅读 · 1 评论 -
利用Socket实现C++与Flex通信
利用Socket实现C++与Flex通信 一、C++服务器端(用的是Visual Studio 2008(05,03的应该也可以,VC++的可能需要稍微改动))代码如下:#include #include #include #include using namespace std;#pragma comment(lib原创 2009-12-02 19:02:00 · 2100 阅读 · 0 评论 -
浅谈如何做安全可靠的游戏活动
浅谈如何开发可靠的游戏活动 一年一度的端午节来了,商场活动满天飞,游戏活动也不甘示弱,处处打折优惠免费送。顾客乐开花,玩家美滋滋。实体店赚的盆满,虚拟商呢?不见得!游戏活动不被刷就是幸运。不幸的是,游戏活动被刷了,玩家获得一件件宝贝,游戏商损失严重,开发者也受牵连,开发者轻者警告处分,重者罚款,开除,在甚者,就得蹲板房。作为开发者,做活动开发,简直是拿职业前途做赌原创 2013-06-13 23:21:12 · 2469 阅读 · 2 评论