摘要: 对于基于TCP开发的通讯程序,有个很重要的问题需要解决,就是封包和拆包.自从我从事网络通讯编程工作以来(大概有三年的时间了),我一直在思索和改进封包和拆包的方法.下面就针对这个问题谈谈我的想法,抛砖引玉.若有不对,不妥之处,恳求大家指正.在此先谢过大家了.一.为什么基于TCP的通讯程序需要进行封包和拆包.TCP是个"流"协议,所谓流,就是没有界限的一串数据.大家可以想想河里的流水,是连成一片的,其... 阅读全文
posted @ 2009-06-13 22:37 alex_lin 阅读(1842) 评论(0) 推荐(0) 编辑
摘要: 谈这个话题之前,首先要让大家知道,什么是服务器。在网络游戏中,服务器所扮演的角色是同步, 广播和服务器主动的一些行为,比如说天气,NPCAI之类的,之所以现在的很多网络游戏服务器都需要 负担一些游戏逻辑上的运算是因为为了防止客户端的作弊行为。了解到这一点,那么本系列的文章将分为 两部分来谈谈网络游戏服务器的设计,一部分是讲如何做好服务器的网络连接,同步,广播以及NPC的设置, 另一部分则将着重谈谈... 阅读全文
posted @ 2009-06-13 22:04 alex_lin 阅读(439) 评论(0) 推荐(0) 编辑
摘要: 线程的同步可分用户模式的线程同步和内核对象的线程同步两大类临界区是属于用户模式的线程同步; 只能用于一个进程里面的多线程同步内核的同步有:管理事件内核对象:跨进程:使用临界区只能同步同一进程中的线程,而使用事件内核对象则可以对进程外的线程进行同步,其前提是得到对此事件对象的访问权。可以通过OpenEvent()函数获取得到,其函数原型为:信号量内核对象:不能跨进程: 信号量的使用特点使其更适用于对... 阅读全文
posted @ 2009-06-13 15:57 alex_lin 阅读(266) 评论(0) 推荐(0) 编辑
摘要: Linux下面socket编程的非阻塞TCP研究(转)引用链接:http://xufish.blogbus.com/logs/40537344.htmltcp协议本身是可靠的,并不等于应用程序用tcp发送数据就一定是可靠的.不管是否阻塞,send发送的大小,并不代表对端recv到多少的数据.在阻塞模式下,send函数的过程是将应用程序请求发送的数据拷贝到发送缓存中发送并得到确认后再返回.但由于发送... 阅读全文
posted @ 2009-06-13 15:47 alex_lin 阅读(2191) 评论(0) 推荐(0) 编辑