ISE使用手册

上传人:飞****9 文档编号:131966794 上传时间:2020-05-11 格式:PDF 页数:52 大小:1.31MB
返回 下载 相关 举报
ISE使用手册_第1页
第1页 / 共52页
ISE使用手册_第2页
第2页 / 共52页
ISE使用手册_第3页
第3页 / 共52页
ISE使用手册_第4页
第4页 / 共52页
ISE使用手册_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《ISE使用手册》由会员分享,可在线阅读,更多相关《ISE使用手册(52页珍藏版)》请在金锄头文库上搜索。

1、ISE 使用手册 第 1 页 ISE 使用手册 一 ISE简介 3 1 1 ISE概述 3 1 2 ISE的主要特点 3 1 3 为什么要跨平台 3 1 4 编译与安装 4 1 5 目录结构 5 1 6 Hello World 7 1 7 IseBusiness接口 8 二 使用ISE开发TCP服务端程序 12 2 1 详述ISE的TCP并发模型 12 2 1 1 IO模型 12 2 1 2 Reactor与Proactor 13 2 1 3 常见TCP并发模型 14 2 1 4 ISE的TCP并发模型 16 2 2 基于ISE开发TCP服务端程序 17 2 2 1 与TCP相关的几个角色简介

2、 17 2 2 2 发送和接收数据 17 2 2 3 连接的断开与销毁 20 2 2 4 主动发起连接 21 2 2 5 并发模型的选择 22 2 2 6 多个TCP服务器的实现 22 2 3 实现一个简单的echo服务 23 三 使用ISE开发UDP服务端程序 27 ISE 使用手册 第 2 页 3 1 UDP服务端工作原理 27 3 1 1 监听线程池 27 3 1 2 生产者消费者队列 27 3 1 3 动态工作者线程池 28 3 2 高并发UDP服务程序设计 29 3 2 1 对UDP请求包进行分组 Request Grouping 29 3 2 2 设置相关参数 30 3 3 实现一

3、个简单的UDP服务 31 四 更进一步了解ISE 37 4 1 服务模块 Server Modules 37 4 1 1 服务模块工作原理 37 4 1 2 基于服务模块的编程方式 37 4 1 3 服务模块编程示例 37 4 2 辅助线程 Assistor Threads 38 4 3 服务状态监视 Server Inspector 38 4 4 多线程环境编程基础设施 39 4 5 ISE扩展 ISE Extensions 40 4 6 对数据库的支持 41 4 6 1 ISE数据库接口 DBI 41 4 6 2 MySQL接口 43 4 6 3 开发更多的数据库接口 45 五 ISE编程

4、示例 46 5 1 四个简单的TCP协议 46 5 2 简单的HTTP服务 48 5 3 服务状态监视器 48 5 4 工作者线程池 48 5 5 简单的UDP服务端 49 六 附录 50 6 1 ISE参数配置 50 6 2 参考资料 52 ISE 使用手册 第 3 页 一 ISE简介 1 1 ISE概述概述 ISE Iris Server Engine 是一个基于现代 C 的跨平台 Linux 和 Windows 的高性能多线程 并发网络服务器程序框架 它封装了琐碎的 socket 以及各种操作系统 APIs 以面向对象方式向开发者提 供稳定 高效 易扩展 易配置 易维护的程序框架 ISE

5、 的用户只需遵循接口的约定 挂接自己的业务 程序 即可轻松开发出稳定 高效的网络服务器程序 1 2 ISE的主要特点的主要特点 跨平台 目前支持 Linux 和 Windows 基于多线程并发 而非多进程 支持 TCP 与 UDP 服务端程序开发 基于 Proactor 模式的 TCP 服务接口 基于请求分组与负载自适应的高并发 UDP 服务模型 不支持 IPv6 只支持 IPv4 提供通用数据库接口 DBI 并预置 MySQL 扩展 ISE 是一个程序框架 Framework 而非一个程序库 Library 1 3 为什么要跨平台为什么要跨平台 ISE 克服了许多平台差异带来的困难 在不牺牲

6、性能的前提下 为开发者提供了一致的接口 ISE 跨 平台的目标是 Linux 和 Windows 短期内不考虑其它平台 在这两种平台下 多线程网络服务程序需要面 对的问题有 多线程环境编程基础设施 比如线程实现方式 互斥锁 条件变量 信号量 原子整数等 两种 平台对这些基础设施的实现差异甚大 比如 Windows 平台下 在 Vista 之前的系统并不提供对 条件变量的支持 需要开发者通过多种同步机制自行模拟 再比如 Windows 中的事件对象 Event 在 Linux 中并无对应的机制 IO 多路复用机制 IO multiplexing Linux EPoll 和 Windows IOC

7、P 分别代表了两种平台 下最高效的 IO 多路复用机制 但是两者的设计理念完全不同 EPoll 以 Reactor 模式为基础 而 IOCP 则以 Proactor 模式为基础 在不同的平台下 要求开发者以不同的思维模式来设计自己的 程序 ISE 解决了这个问题 数据库访问机制 虽然不是全部 但有相当一部分服务端程序存在访问数据库的需求 在不同的 平台下 访问数据库的途径五花八门 而如果要实现跨平台 则有必要实现一套统一的机制 其它常用操作 比如文件读写 日期时间 内存管理 日志输出等等 平台的差异性将导致这些 ISE 使用手册 第 4 页 最常用操作的实现方式大相径庭 ISE 封装了这些差异

8、 为开发者提供了一致的接口 从这些差异来看 ISE 为跨平台做了不少工作 但好在付出的这些代价只局限在 ISE 本身的开发 对 于 ISE 的用户来说 跨平台并没有带来坏处 ISE 跨平台的前提是 不牺牲性能 那么 ISE 为什么要跨平台 因为 这是 ISE 的选择 如果你正在做一个基于 Linux 的网络服务程序 而你的团队中有人并不擅长 Linux 编程 那么他 可以拿起他最擅长的 Visual Studio 工具 写出在两种平台下行为一致的程序 ISE 保证了这一 点 你的产品不只面向一个客户 有些客户要求基于 Linux 系统 而有些要求 Windows 系统 没关 系 基于 ISE

9、的项目可以做到 一份代码 两处编译 1 4 编译与安装编译与安装 ISE 是一个开源项目 它在 GitHub 中的地址是 ISE 的主要开发环境 Linux 平台 Debian 6 0 Squeeze 内核版本 2 6 32 g 4 4 32 位和 64 位环境 Windows 平台 Visual C 2005 SP1 ISE 依赖 Boost 但只用到了 boost function bind shared ptr scoped ptr any 等这些无需 编译的部分 安装 Boost 很简单 Windows 平台下 可先下载 boost 压缩包后解压到某个目录下 比如 c boost 再在

10、 Visual C 中 选项 项目和解决方案 VC 目录 包含文件 中添加 boost 目录 比如 c boost 即可 Linux 平台下 可直接 apt get 安装 sudo apt get install libboost1 40 dev 在 Windows 平台下编译 ISE 请先安装 Visual C 2005 SP1 再打开 ise build windows VC8 目录下的解决方案 sln 文件即可 libise sln ISE 主程序 libise dbi mysql sln ISE 数据库接口 DBI 的 MySQL 扩展 ISE 使用手册 第 5 页 libise ut

11、ils sln ISE 的 utils 扩展 examples sln 各种示例程序 在 Linux 平台下 ISE 采用 CMake 进行编译 如果系统未安装 CMake 可先安装它 sudo apt get install cmake 编译 ISE 的方法很简单 cd ise build linux build sh build sh install 以上命令将 ISE 的头文件和生成的静态库文件安装到 ise build linux debug install 目录下 如果要编译为 release 版 可执行 BUILD TYPE release build sh BUILD TYPE

12、release build sh install 以上命令将 ISE 的头文件和生成的静态库文件安装到 ise build linux release install 目录下 编译完成之后 可运行 ise build linux debug bin 目录下的示例程序 比如 server inspector 然 后在浏览器中输入 http 192 168 0 100 8080 其中 192 168 0 100 请替换成您的 Linux 机器的实 际 IP 地址 1 5 目录结构目录结构 ISE 的目录结构如下 ise ISE 根目录 build 项目编译根目录 linux Linux 平台的编译

13、目录 windows Windows 平台的编译目录 doc 文档 examples 示例程序 ise ISE 源码根目录 ext ISE 扩展 dbi 数据库扩展 DBI mysql 预置的 MySQL 扩展 utils 实用程序 utils 扩展 cipher 丰富的加解密 散列算法库 xml 跨平台的 XML 操作封装库 main ISE 主程序 ISE 使用手册 第 6 页 编译目录说明 build 项目编译根目录 linux Linux 平台的编译目录 debug bin 存放 debug 模式下示例程序编译结果 debug install include 存放 debug 模式下编

14、译安装后的头文件 lib 存放 debug 模式下编译安装后的静态库文件 release bin 存放 release 模式下示例程序编译结果 release install include 存放 release 模式下编译安装后的头文件 lib 存放 release 模式下编译安装后的静态库文件 windows Windows 平台的编译目录 VC8 bin 存放示例程序编译结果 lib 存放编译生成的静态库文件 ISE 主程序说明 ise main ISE 主程序根目录 ise h ISE 的总头文件 ise application 程序框架流程控制 ise assert 断言支持 ise

15、 classes 基础类库 ise database 数据库接口定义 DBI ise err msgs 错误信息定义 ise exceptions 各种异常定义 ise global defs 全局常量 类型定义 ise http HTTP 协议的实现 ise inspector 服务监视 ise options 编译条件定义 ise scheduler 简单的定时任务 ise server assistor 辅助线程管理 ise server tcp TCP 服务的实现 ise server udp UDP 服务的实现 ise socket 基础 socket 封装 ise stldefs

16、STL 相关的头文件 ise svr mod 服务模块支持 ise svr mod msgs 服务模块消息支持 ise sys threads ISE 框架的后台线程 ise sys utils 各种跨平台的实用函数 ise thread 线程封装 ISE 使用手册 第 7 页 1 6 Hello World 为了快速了解 ISE 的基本使用方法 现在让我们以最快的速度写一个基于 ISE 的 Hello World 程 序 这个程序是一个TCP服务器 把它运行起来之后 用telnet作为客户端去连接它 会得到一行输出 Hello World 然后连接断开 就这么简单 在 ise examples hello world 目录下可以查看这个示例程序的源 码 hello world h 的源码如下 hello world h 01 include ise main ise h 02 03 using namespace ise 04 05 class AppBusiness public IseBusiness 06 07 public 08 virtual void initIseOpt

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号