- 1、本文档共17页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
- LINUX 伺服器安裝、維護、校調、備份.doc
- LOB分析技法.ppt
- lonwork现场总线ppt.ppt
- LV广告文案.doc
- L’ergonomie cognitive pourquoi, comment.ppt
- lte-相关技术及演进.ppt
- l、荷载的分布情况可分为集中荷载、分布荷载.doc
- m11j颜氏家训.doc
- m12j幼学琼林.doc
- MBR系统运行手册.doc
- 专题06 经济体制(我国的社会主义市场经济体制)-五年(2020-2024)高考政治真题分类汇编(解析版).docx
- 专题11 世界多极化与经济全球化-5年(2020-2024)高考1年模拟政治真题分类汇编(解析版).docx
- 专题03 经济发展与社会进步-5年(2020-2024)高考1年模拟政治真题分类汇编(浙江专用)(解析版).docx
- 专题09 文化传承与文化创新-5年(2020-2024)高考1年模拟政治真题分类汇编(北京专用)(原卷版).docx
- 5年(2020-2024)高考政治真题分类汇编专题08 社会进步(我国的个人收入分配与社会保障)(原卷版).docx
- 专题07 探索世界与把握规律-5年(2020-2024)高考1年模拟政治真题分类汇编(解析版).docx
- 5年(2020-2024)高考政治真题分类汇编专题06 经济体制(我国的社会主义市场经济体制)(原卷版).docx
- 专题11 全面依法治国(治国理政的基本方式、法治中国建设、全面推进依法治国的基本要求)-五年(2020-2024)高考政治真题分类汇编(解析版).docx
- 专题17 区域联系与区域协调发展-【好题汇编】十年(2015-2024)高考地理真题分类汇编(解析版).docx
- 专题01 中国特色社会主义-5年(2020-2024)高考1年模拟政治真题分类汇编(原卷版).docx
文档评论(0)