Chinaunix首页 | 论坛 | 博客
  • 博客访问: 99232
  • 博文数量: 41
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 486
  • 用 户 组: 普通用户
  • 注册时间: 2012-05-18 20:09
文章分类

全部博文(41)

文章存档

2016年(1)

2015年(1)

2014年(9)

2013年(30)

我的朋友

分类: C/C++

2013-06-03 14:56:02

设计: 网络层包含一个连接队列,每个连接类负责读写缓冲;应用层包含一个玩家队列,不用负责底层的读写缓冲。 http://blog.csdn.net/sodme/article/details/85304 好了,具体说下网络层的连接管理吧。 接口:  uint32 newConn();  void deleteConn(uint32 index);  conn* getConn(uint32 index); 总的内存分配是一个大数组,每个数组包含一个conn结构体。 通过在这个数组上检索空白槽来获得一个新连接,连接结构体对外的是索引值方式,而不是指针方式,是为了杜绝野指针。 可以增加一个freelist, 来保存deleteConn之后的空闲连接,提高检索速度。 conn.rar 一般而言,每个连接都有唯一的一个socket值,用此socket可以用来唯一识别一个连接,linux下常用做法就是定义一个大数组,以socket作为数组下标,来存放所有连接;但是这是基于linux的文件描述符分配是从最小开始分配的,所以windows下的话,一般用map 我这里统一用一个大数组,数组下标不是socket值,来统一跨平台。 conn.rar
阅读(594) | 评论(0) | 转发(0) |
0

上一篇:虚函数表

下一篇:数据包设计

给主人留下些什么吧!~~