
架构、协议与网络
文章平均质量分 77
「已注销」
这个作者很懒,什么都没留下…
展开
-
网络机器人(2)----开发游戏机器人所需要的基本功
本文作者:sodme 本文出处:http://blog.csdn.net/sodme版权声明:本文可以不经作者同意任意转载,但转载时烦请保留文章开始前两行的版权、作者及出处信息。 当大家尝试了若干年由互联网信息资源大爆炸所带来的甜头后,我们开始为寻找有用资源以及有效利用这些庞大的资源而发愁,更多的时候,我们更象一只乱撞的苍蝇在这个URL和那个URL之间奔走,半天的忙碌说不定给我们带来的却是一场空原创 2004-03-02 10:27:00 · 5321 阅读 · 0 评论 -
完成端口之性能优化(2)
本文作者:sodme 本文出处:http://blog.csdn.net/sodme版权声明:本文可以不经作者同意任意转载,但转载时烦请保留文章开始前两行的版权、作者及出处信息。 前面有朋友对本系列文章的题目提出质疑,说:这恐怕不能算是性能优化吧?我要指出的是,本系列文章中提到的优化并不仅仅是某段具体的代码优化,当然这种东西肯定会有,但优化绝不仅仅是这些方面,我这里提到的优化还包括更多的关于原创 2005-05-01 01:25:00 · 5761 阅读 · 1 评论 -
完成端口及网络编程之QA(常见问题,持续添加)
本文作者:sodme 本文出处:http://blog.csdn.net/sodme版权声明:本文可以不经作者同意任意转载,但转载时烦请保留文章开始前两行的版权、作者及出处信息。对于初次使用IOCP进行高性能服务器开发的朋友来说,可能会经常遇到一些莫名其妙的错误,让自己无从下手。为此,我将利用此篇文章对IOCP开发中的常见问题予以集中记录并持续添加,并附上我的处理建议,以供大家参考。1、在程序创建原创 2005-05-01 02:04:00 · 6505 阅读 · 1 评论 -
一点感慨:作网络通信,其实就是在作内存(缓冲区)管理
最近看代码,感慨很多。作一个高性能的网络通信模块,除了要选择高性能的网络通信模型之外,同样重要的就是:你的内存(缓冲区)是如何管理的。 在网络通信模型方面,现在的技术都是比较成熟的了,在win下使用iocp,在linux下使用epoll。它们的使用方法,相对来说,还是比较有章可循的。 内存之于高性能,大致有以下两个方面需要特别注意: 1.尽可能地减少内存的动态申请和释放; 2.尽可能地原创 2005-09-27 23:44:00 · 8354 阅读 · 3 评论 -
完成端口的深入理解及一种变态用法
本文作者:sodme本文出处:http://blog.csdn.net/sodme声明:本文可不经作者同意,任意被转载、引用、复制,但任何对本文的引用都必须注明本文作者,出处以及本行声明信息。谢谢。 作为WIN平台下同时管理数千个连接的最为高效的网络模型,完成端口已经被越来越多的人认识和熟悉。通常情况下,一种经典的完成端口使用模式是: (1)创建完成端口,并在指定端口开始监听; (2)创建接原创 2005-05-26 21:29:00 · 6275 阅读 · 5 评论 -
负载均衡--大型在线系统实现的关键(上篇)(再谈QQ游戏百万人在线的技术实现)
本文作者:sodme本文出处:http://blog.csdn.net/sodme声明:本文可以不经作者同意任意转载,但任何对本文的引用都须注明作者、出处及此声明信息。谢谢!! 要了解此篇文章中引用的本人写的另一篇文章,请到以下地址: http://blog.csdn.net/sodme/archive/2004/12/12/213995.aspx 以上的这篇文章是早在去年的时候写的了,当时原创 2005-06-12 21:23:00 · 28252 阅读 · 4 评论 -
负载均衡--大型在线系统实现的关键(下篇)(服务器集群架构的设计与选择)
本文作者:sodme本文出处:http://blog.csdn.net/sodme声明:本文可以不经作者同意任意转载,但任何对本文的引用都须注明作者、出处及此声明信息。谢谢!! 在网络应用中,“负载均衡”已经不能算是什么新鲜话题了,从硬件到软件,也都有了很多的方法来实现负载均衡。我们这里讨论的负载均衡,并不是指依靠DNS转向或其它硬件设备等所作的负载均衡,而是指在应用层所作的负载均衡。 一般而原创 2005-06-15 01:29:00 · 18378 阅读 · 8 评论 -
基于win平台的高性能服务器底层通信模型设计(1)
本文作者:sodme本文出处:http://blog.csdn.net/sodme声明:本文可以不经作者同意任意转载,但请保留文章开始前的作者、出处及声明信息。谢谢。 由于个人工作的关系,接触高性能服务器的研发已经有一段时间了,在没有接触这个话题之前,我也和许多人一样,认为服务器的设计无非就是用一下winsock,调用调用函数那么简单。当亲自完成了一个在win平台上能承载上万连接的测试模型后原创 2005-06-12 15:09:00 · 10301 阅读 · 20 评论 -
逆向思维--魔兽世界封包分析(1)
本文作者:sodme本文出处:http://blog.csdn.net/sodme声明:本文可以不经作者同意任意转载,但任何对本文的引用都须注明作者、出处及此声明信息。谢谢!! 特别声明: 本人非常欣赏暴雪及他们的游戏,之所以写这个文章,是想让大家了解一些网络封包分析方面的常见方法以及学习暴雪游戏在网络处理方面的经验,偶认为作为一个网络编程者,熟练掌握封包分析的工具和方法应该是其基本功之一原创 2005-06-18 16:26:00 · 37594 阅读 · 13 评论 -
在google申请了一个讨论高性能网络编程的邮件列表,欢迎订阅
一直到现在,我都没有发现国内讨论高性能网络编程的好地方。我也经常被网友问起一些有关高性能网络编程相关的问题,有些问题是很基本的网络编程问题,而其中的某些讨论,对于我本身也是很有帮助的,我觉得有必要将这些讨论信息提供出来。想来想去,还是觉得使用邮件列表的方式是最好的,再加上google现在提供的邮件列表很不错,所以,就决定用google创建一个专门用于讨论高性能网络编程的邮件列表,我想,这可能是国内原创 2006-02-17 20:42:00 · 12821 阅读 · 3 评论 -
epoll与iocp的异同之处
本文作者:sodme本文出处:http://blog.csdn.net/sodme声明:本文可以不经作者同意任意转载、复制、引用。但任何对本文的引用,均须注明本文的作者、出处以及本行声明信息。目前国内的网游研发,在服务器使用的开发平台方面,win和linux的比例各占多少,我一时半会也没有准确数据,但从我了解的这么多公司情况来看,用win系统的还是比较多一点,这些企业一般都是比较单纯的网游公司,而原创 2006-02-15 00:52:00 · 12791 阅读 · 1 评论 -
邮件列表正在讨论QQ的架构问题
邮件列表正在讨论QQ的架构问题,有感兴趣的朋友,请点击以下链接: QQ架构讨论一周后的周末会作总结陈词,呵呵.原创 2006-02-19 22:20:00 · 5491 阅读 · 0 评论 -
IOCP中的socket错误和资源释放处理方法
本文作者:sodme本文出处:http://blog.csdn.net/sodme声明:本文可以不经作者同意任意转载、复制、传播,但任何对本文的引用均须保留本文的作者、出处及本行声明信息!谢谢!前言: 错误处理和socket释放, 是IOCP编程中的一大难点. 本文试图就IOCP设计中经常遇到的这个难题展开论述并寻找其解决方案, 事实上, 文中所述的解决方式不仅仅适用于IOCP, 它同样适用于E原创 2006-04-17 00:41:00 · 15670 阅读 · 5 评论 -
高性能网络编程MailList 热点回顾 [1]
早在今年2月份, 鉴于国内服务器程序开发的同仁一直以来都没有一个固定的场所可以互相交流, 我在google group上建了一个有关高性能网络编程的maillist (加入的方法见这里), 现已经加入的600多名成员中, 所属领域较为广泛: 有从事网游服务器开发的, 有从事IM服务器开发的, 也有从事WEB服务器开发. 经过数月累积, 已经有了一定的问题积累, 所涉及的内容, 有浅有深, 在以原创 2006-06-04 04:20:00 · 10882 阅读 · 1 评论 -
完成端口之性能优化(1)
本文作者:sodme 本文出处:http://blog.csdn.net/sodme版权声明:本文可以不经作者同意任意转载,但转载时烦请保留文章开始前两行的版权、作者及出处信息。 完成端口的主要优点在哪里? 完成端口的最大优点在于其管理海量连接时的处理效率,通过操作系统内核的相关机制完成IO处理的高效率。注意:完成端口的优点在于管理连接量的巨大,而不是传输数据量的巨大。在这种场合最适合用完原创 2005-04-14 23:20:00 · 6314 阅读 · 3 评论 -
泡泡堂、QQ堂游戏通信架构分析
本文作者:sodme本文出处:http://blog.csdn.net/sodme声明:本文可以不经作者同意任意转载、复制、引用。但任何对本文的引用,均须注明本文的作者、出处以及本行声明信息。 之前,我分析过QQ游戏(特指QQ休闲平台,并非QQ堂,下同)的通信架构(http://blog.csdn.net/sodme/archive/2005/06/12/393165.aspx),分析原创 2005-08-31 01:12:00 · 12367 阅读 · 2 评论 -
网络机器人(1)--悄然中向我们走来
本文作者:sodme 本文出处:http://blog.csdn.net/sodme版权声明:本文可以不经作者同意任意转载,但转载时烦请保留文章开始前两行的版权、作者及出处信息。 最早听说网络机器人的存在,是在2002年底,那时第一次听说GOOGLE为了统计和查询网络资源,专门研制了一种网络机器人,在世界各地为GOOGLE不辞劳苦地忙碌着,然而,关于网络机器人更详细的信息却一直不得而知。 直至原创 2004-03-03 10:40:00 · 4778 阅读 · 0 评论 -
网络机器人(3)----游戏机器人的开发工具及开发步骤
本文作者:sodme 本文出处:http://blog.csdn.net/sodme版权声明:本文可以不经作者同意任意转载,但转载时烦请保留文章开始前两行的版权、作者及出处信息。由于手头的一个网游项目正在启动,所以,这一篇文章与上一次的文章之间相隔了很长的时间,特向读者道歉,让大家久等了。这个系列文章,是没有事先打草稿的,纯属信手写来,所以,其中的条理性可能不太好,我会在以后的整理中将稿子再好好整原创 2004-03-31 11:52:00 · 6584 阅读 · 4 评论 -
一个有关扑克牌牌型分析的问题
此前,在公司的项目开发中,我负责着手解决这样一个问题:在斗地主游戏中,根据玩家出的牌分析出这手牌的牌型。大家知道,在斗地主游戏中,总计有十一种牌型:火箭:即双王(大王和小王)。炸弹:四张同数值牌(如四个7)。单牌:单个牌(如红桃5)。对牌:数值相同的两张牌(如梅花4+方块4)。三张牌:数值相同的三张牌(如三个J)。三带一:数值相同的三张牌 + 一张单牌或一对牌。例如: 333+6或444+99 单原创 2004-06-22 21:46:00 · 6946 阅读 · 5 评论 -
网络游戏中的数据包设计与定义(初论)
接触了一段时间的网游封包设计,有了一些初步的思路,想借这篇文章总结一下,同时也作个记录,以利于以后更新自己的思路。 网络游戏的技术研发,分为三个主要的方面:服务器设计,客户端设计,数据库设计。而在服务器和客户端之间实现游戏逻辑的中介则是游戏数据包,服务器和客户端通过交换游戏数据包并根据分析得到的数据包来驱动游戏逻辑。网络游戏的实质是互动,而互动的控制则由服务器和客户端协同完成,协同就必然要依原创 2004-06-23 00:07:00 · 9095 阅读 · 6 评论 -
一次关于游戏服务器底层通信架构的重构过程
从昨晚七点,到今天上午11点,先后对大厅和房间服务器进行了重构,重构后的代码结构清晰了,效率也提高了,觉得这次的重构过程很有意义,所以记录下来以备查。在原有的大厅服务器中,原有的设计是使用统一的一个TUSER对象管理底层数据的接收以及高层对TUSER进行的逻辑层的属性读写操作,不管是玩家正常连接的SOCKET还是用于临时通信的SOCKET,只要有连接都会分配一个TUSER对象。而在TUSER对原创 2004-08-26 13:18:00 · 6364 阅读 · 0 评论 -
关于IOCP的更进一步理解
接触IOCP的概念是在今年4月份刚开始作网游的时候,如果不是作网络编程特别是服务器编程的朋友,可能连IOCP的概念都不知道,这一点都不奇怪。正如一位网友所说的,IOCP说白了就是一个系统级队列及对这个队列进行维护的一个机制,我们只要按照基本固定的方式来调用相关的函数,就可以实现一个基于IOCP架构的服务器模型。建立IOCP的基本步骤很多资料上都有介绍,随便找找就能找到一大堆,我使用的语言是DE原创 2004-10-29 23:03:00 · 6511 阅读 · 4 评论 -
类似于QQ游戏百万人同时在线的服务器架构实现
本文作者:sodme 本文出处:http://blog.csdn.net/sodme版权声明:本文可以不经作者同意任意转载,但转载时烦请保留文章开始前两行的版权、作者及出处信息。 QQ游戏于前几日终于突破了百万人同时在线的关口,向着更为远大的目标迈进,这让其它众多传统的棋牌休闲游戏平台黯然失色,相比之下,联众似乎已经根本不是QQ的对手,因为QQ除了这100万的游戏在线人数外,它还拥有3亿多的注册原创 2004-12-12 21:19:00 · 24360 阅读 · 36 评论 -
拼包函数及网络封包的异常处理(含代码)
本文作者:sodme本文出处:http://blog.csdn.net/sodme声明:本文可以不经作者同意任意转载、复制、传播,但任何对本文的引用都请保留作者、出处及本声明信息。谢谢! 常见的网络服务器,基本上是7*24小时运转的,对于网游来说,至少要求服务器要能连续工作一周以上的时间并保证不出现服务器崩溃这样的灾难性事件。事实上,要求一个服务器在连续的满负荷运转下不出任何异常,要求它设计的近原创 2005-07-10 15:32:00 · 16318 阅读 · 3 评论 -
逆向思维----魔兽世界封包分析(2)
本文作者:sodme本文出处:http://blog.csdn.net/sodme声明:本文可以不经作者同意任意转载、复制、传播,但任何对本文的引用均须注明本文作者、出处及本行声明信息。谢谢! 封包分析的手段,说简单也挺简单的,那就是:比较!要不断地从不同的思维角度对封包进行对比分析,要充分发挥你的想象力不断地截取自己需要的包进行比较。不仅要作横向(同类)的比较,还要作纵向(不同类)的比较。原创 2005-07-10 19:51:00 · 11619 阅读 · 4 评论 -
完成端口中的单句柄数据结构与单IO数据结构的理解与设计
本文作者:sodme本文出处:http://blog.csdn.net/sodme声明:本文可以不经作者同意任意转载、复制、传播,但任何对本文的引用均须保留本文的作者、出处及本行声明信息!谢谢! 完成端口模型,针对于WIN平台的其它异步网络模型而言,最大的好处,除了性能方面的卓越外,还在于完成端口在传递网络事件的通知时,可以一并传递与此事件相关的应用层数据。这个应用层数据,体现在两个方面:一是单原创 2005-07-17 16:57:00 · 10915 阅读 · 4 评论 -
编写IOCP时的几个注意事项(转自mirosoft)
TIP 1: Use Winsock2 IOCP-capable functions, such as WSASend and WSARecv, over Win32 file I/O functions, such as WriteFile and ReadFile. 提示1:尽量使用WSASend和WSARecv进行数据收发Socket handles from Microsoft-based原创 2005-04-04 15:29:00 · 3589 阅读 · 0 评论 -
网游服务器设计--到底应该追求性能和效率还是应该追求架构清晰易维护?
作IOCP的过程中,越来越感觉到,在网络通信底层,实际上,并不需要太多的面向对象元素,即使我用纯C来实现一个IOCP,我觉得只要性能能够达到应用的需求,也是可以接受的,大可不必为了追求所谓的好看的代码架构而处心积虑地在这个本不复杂的模型上搭建太多额外的诸如叫得好听的被称为“面向对象”的东西。IOCP本身是一块很小的内核,它自己的功能应该尽可能地独立和简化,只负责最底层的网络连接、断开、收发、出错提原创 2005-04-12 23:25:00 · 3418 阅读 · 1 评论 -
从“魔兽世界”的服务器崩溃说开去......
本文作者:sodme 本文出处:http://blog.csdn.net/sodme版权声明:本文可以不经作者同意任意转载,但转载时烦请保留文章开始前两行的版权、作者及出处信息。提示:阅读本文前,请先读此文了解文章背景:http://data.gameres.com/message.asp?TopicID=27236 让无数中国玩家为之瞩目的“魔兽世界”,随着一系列内测前期工作的逐步展开,正在一原创 2005-04-17 22:43:00 · 8196 阅读 · 9 评论 -
只贴链接不说话: QQ的架构
很早之前, 我们在maillist里的讨论:http://groups.google.com/group/dev4server/browse_thread/thread/0d72668d11c4886b/#今天, 看到的在CSDN 论坛里的讨论:http://community.csdn.net/Expert/TopicView3.asp?id=4825364原创 2006-06-18 16:29:00 · 6664 阅读 · 0 评论