netkit库技术说明书.doc

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
netkit库技术说明书

netkit库技术说明书 文件状态: [ ] 草稿 [√] 正式发布 [ ] 正在修改 文件标识: netkit Design-071228 当前版本: 1.0 作 者: 完成日期: 2007-12-28 目 录 1 概述 3 1.1 编写目的 3 1.2 系统的主要特点 3 1.3 参考资料 3 1.4 术语和缩写词 3 2 系统设计 4 2.1 系统总体设计 4 2.2 线程池管理 5 2.3 节点管理 5 2.4 内存管理 6 2.5 数据封包设计 6 2.6 日志管理 7 3 接口设计 7 4 应用举例 11 4.1 系统初始化 11 4.2 TCP服务器 12 4.3 TCP客户端 13 4.4 UDP服务器 13 4.5 UDP客户端 14 4.6 发送数据 14 4.7 消息命令响应 15 4.8 释放节点 17 1 概述 1.1 编写目的 本说明书的编写目的是为网络应用系统项目开发提供: 1)netkit的总体说明,作为软件设计人员和软件开发人员之间了解的基础; 2)neikit的模型、流程与设计; 3)功能、性能、接口和可靠性的说明,作为网络应用系统软件开发人员进行设计和编码的参考。 1.2 系统的主要特点 1)支持TCP、UPD协议以及混合模式; 2)封装线程池管理模型,支持多连接的并发服务器; 3)同时支持多服务器和多客户端的混合模式,特别适合于P2P系统开发; 4)线程异常退出保护机制; 5)简便的编程接口; 6)易扩展的数据封包方式; 7)低层采用Select非阻塞模型,并对Windows API进行封装,容易实现跨平台移植。 8)适用于中小型windows网络平台应用系统项目的开发。 1.3 参考资料 (1) 《软件工程(第五版)》,Roger S. Pressman 机械工业出版社,ISBN: 7-111-10437-4,2002-9-1 (2) 《Visual C++ 网络游戏建模与实现》,苏羽、王媛媛,北京科海电子出版社,ISBN: 7-900107-97-5 2003-6 (3) 中华人民共和国国家标准:GB?8566?计算机软件开发规范GB?8567?计算机软件产品开发文件编制指南 系统工作方式如下图: 2.2 线程池管理 线程池结构如下: 类图如下: 线程池以CThreadUnit为单位管理,线程池线程数量为设定数×3。 2.3 节点管理 封装Socket函数,提供对网络节点的管理。类图如下: CNodeManager对象封装节点管理方法,CSocketObject对象根据应用实例化TCP/UDP对象,CThreadAccept是建立服务器节点后的监听线程,CThreadConnect是客户端节点连接服务器的连接线程。 2.4 内存管理 系统支持以下三种内存模式: 栈内存模式:静态分配栈内存,在define.h中定义STACK_MODEL宏。 动态分配堆内存模式:使用new关键字动态分配内存,在define.h中不定义STACK_MODEL宏。 预先内存模式,在define.h中不定义STACK_MODEL宏,同时定义MEMORY_MODEL宏。 对于第2、3类模式由CCMemory进行管理。 内存配置:在netcore.h定义的NETKIT_MAX_BUFFER宏为内存申请的最大值。 2.5 数据封包设计 支持可扩展的封包格式,定义了以下三种格式: 默认格式格式:数据包头是长度和命令,有效数据按空格分隔。长度和命令的字节数由netcore.h的PACK_DEFAULT_LEN和PACK_DEFAULT_MSG宏定义。 XML格式:数据包采用XML格式,根节点名字包含长度和命令。长度和命令的字节数由netcore.h的PACK_XML_LEN和PACK_XML_MSG宏定义。 无封包格式:不进行数据封包处理。 类图如下: 若需要扩展,只需继承CPackageObject类,实现父类的虚函数即可。 2.6 日志管理 日志管理由CNetLog对象管理,提供以下几种日志记录的类型: 记录收发的数据,以及按十六进制格式化数据。 记录输入的信息。 根据错误码记录错误信息。 以上信息同时记录在日志文件和控制台窗口中。 3 接口设计 调用netkit库需包含netkit目录下的netkit_include.h头文件,并将netkit目录下的文件加入工程并编译(必需加入cpp文件,并且必需将comkit目录下的cpp文件加入工程编译)。系统接口由CNetKit类封装,类定义如下: class CNetKit { public: CNetKit(); virtual ~CNetKit(); public: BOOL Startup(const S

您可能关注的文档

文档评论(0)

zhuliyan1314 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档