C++网络编程卷1、卷2概述
转载请注明来源:https://www.cnblogs.com/hookjc/
一: C++NPv1主要涉及到的类:
1.1. Logging_Server 是个抽象类,用来定义接口类型,此类不能实例化。
Logging_Handle 是个日志处理类,被服务器聚合。
1.2. Iterative_Logging_Server 实现基本的循环式服务器。
1.3. Reactor_Logging_Server 实现基本的反应式服务器(本质还是循环式服务器)。
1.4. Reactor_Logging_Server_Ex 实现基本的反应式服务器,
在Reactor_Logging_Server基础上利用Hash_Map绑定一个连接对应一个日志文件。
1.5 Process_Per_Connection_Logging_Server 实现一个连接一个进程模型服务器
1.6 Thread_Per_Connection_Logging_Server 实现一个连接一个线程模型服务器
1.7 RT_Thread_Per_Connection_Logging_Server 对Thread_Per_Connection_Logging_Server功能的扩展,
增加了实时机制,即提高数据处理线程的优先级。
二: C++NPv2主要涉及到的类:
2.1. Logging_Accepotr_Ex 和 Logging_Event_Handler_Ex 分别对 Logging_Accepotr、Logging_Event_Handler的功能
扩展, 增加了时间机制,即一段时间里客户没有发送日志文件,则关闭此连接。
2.2 Logging_Accepotr_WFMO 和 Logging_Event_Handler_WFMO分别对 Logging_Accepotr_Ex 和
Logging_Event_Handler_Ex的功能扩展, 增加了针对竞争状态的保护,即增加一个互斥体来显示地序列化对“客户
日志Daemon连接线程池的线程”的访问
2.3 Reactor_Logging_Server模版类需要ACCEPTOR参数化, 可以灵活选择Logging_Accepotr、Logging_Accepotr_Ex、
Logging_Accepotr_WFMO
2.4 ACE_Reactor有三种不同的实现:
ACE_Select_Reactor ACE Reactor在linux下默认的单线程实现(添加一个控制线程,用来优雅地关闭程序),利用
Logging_Accepotr 和 Logging_Event_Handler 实现。
ACE_TP_Reactor 是ACE_Select_Reactor线程池的实现,利用Logging_Accepotr_Ex 和 Logging_Event_Handler_Ex
实现。
ACE_WFMO_Reactor ACE Reactor在window下默认的多线程实现, 利用Logging_Accepotr_WFMO和
Logging_Event_Handler_WFMO来实现。
2.5 Reactor_Logging_Server_Adapter 继承自ACE_Service_Object.它聚合了模版Reactor_Logging_Server<ACCEPOTOR>
2.6 从模版Reactor_Logging_Server_Adapter定义了很多服务,供静态、动态加载使用。
包括: 类Server_Logging_Daemon、Server_Logging_Daemon_Ex、TPC_Logging_Server等。
个人理解:
C++NPV1里的Logging_Server 在功能上类似 C++NPV2里的 ACE_Event_Handler ,
C++NPV1里的Iteractor_Logging_Server 功能上类似 C++NPV2里的 Logging_Event_Handler
三: C++NPV1涉及到的类图

四: C++NPV1的线程、进程涉及到的类图

五: C++NPV2涉及到的类图

六:C++NPV2的第5章涉及到的类图

七: 总结
C++NPV1和C++NPv2举的例子主要是网络日志服务器,从最原始的网络模型开始讲到最后用ACE提供的框架来实现
来源:python脚本自动迁移
C++网络编程卷1、卷2概述的更多相关文章
- 嵌入式linux的网络编程(1)--TCP/IP协议概述
嵌入式linux的网络编程(1)--TCP/IP协议概述 1.OSI参考模型及TCP/IP参考模型 通信协议用于协调不同网络设备之间的信息交换,它们建立了设备之间互相识别的信息机制.大家一定都听说过著 ...
- Linux网络编程&内核学习
c语言: 基础篇 1.<写给大家看的C语言书(第2版)> 原书名: Absolute Beginner's Guide to C (2nd Edition) 原出版社: Sams 作者: ...
- Linux网络编程必看书籍推荐
首先要说讲述计算机网络和TCP/IP的书很多. 先要学习网络知识才谈得上编程 讲述计算机网络的最经典的当属Andrew S.Tanenbaum的<计算机网络>第五版,这本书难易适中. &l ...
- Linux网络编程经典书籍推荐
UNIX环境高级编程<高级unix环境编程><unix网络编程><深入理解计算机系统>比较好 =====================Linux网络编程经典书籍推 ...
- JavaSE_ 网络编程 目录(26)
JavaSE学习总结第26天_网络编程26.01 网络编程概述26.02 网络模型概述和图解26.03 网络编程三要素概述26.04 网络编程三要素之IP概述126.05 InetAddress类的概 ...
- JavaSE学习总结第26天_网络编程
26.01 网络编程概述 网络编程:就是用来实现网络互连的不同计算机上运行的程序间可以进行数据交换. 26.02 网络模型概述和图解 计算机网络之间以何种规则进行通信,就是网络模型研究问题. ...
- 【Java基础】【26网络编程】
26.01_网络编程(网络编程概述)(了解) A:计算机网络 是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下, ...
- 阶段01Java基础day25网络编程
26.01_网络编程(网络编程概述) A:计算机网络 是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源 ...
- day26<网络编程>
网络编程(网络编程概述) 网络编程(网络编程三要素之IP概述) 网络编程(网络编程三要素之端口号概述) 网络编程(网络编程三要素协议) 网络编程(Socket通信原理图解) 网络编程(UDP传输) 网 ...
- 网络编程、三要素、Socket通信、UDP传输、TCP协议、服务端(二十五)
1.网络编程概述 * A:计算机网络 * 是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传 ...
随机推荐
- CapstoneCS5265|TYPEC转HDMI 4K60HZ转换方案设计|CS5265功能介绍
芯片简介描述:CS5265集成了一个DP1.4的转换器HDMI2.0转换.此外,CC控制器还用于CC通信,以实现DP Alt模式. CS5265是一种高度集成的单芯片,适用于多个细分市场和显示应用,如 ...
- netty系列之:netty对SOCKS协议的支持
目录 简介 SocksMessage Socks4Message Socks5Message 总结 简介 SOCKS是一个优秀的网络协议,主要被用来做代理,它的两个主要版本是SOCKS4和SOCKS5 ...
- Linux 使用 split 命令分割文件
使用方法: $ split --help 用法:split [选项]... [输入 [前缀]] 将输入内容拆分为固定大小的片段并输出到"前缀aa"."前缀ab" ...
- MongoDB学习 - 安装部署
1. docker 启动 拉取镜像 docker pull mongo:latest 指定目录启动 docker run -d -p 27017:27017 --name mongo \-v /ho ...
- nginx配置指定域名访问,nginx禁止ip访问,配置空主机头 syscal
1.大家有过这方面的困扰,就是自己的网站给其他人恶意域名解析到自己的服务器ip上. 特别不爽,那大家可以用用空主机头的方法. 先给大家看下我的nginx.conf配置 http { log_forma ...
- 友善之臂mini2440光盘资料下载FriendlyARM-2440-DVD.7z
这是我目前找到最全面的友善之臂mini2440的光盘资料了,几乎支持mini2440的各种lcd屏幕.另外,Windows平台工具文件夹下还有版本比较新的MiniTools,这是一个非常好用的软件! ...
- .NET Core 利用委托进行动态流程组装
引言 在看.NET Core 源码的管道模型中间件(Middleware)部分,觉得这个流程组装,思路挺好的,于是就分享给大家.本次代码实现就直接我之前写的动态代理实现AOP的基础上直接改了,就不另起 ...
- vue传参子传父
vue子传父用$emit实现 1.文件目录结构 2.parent父组件内容 <template> <div class="wrap"> <div> ...
- Android官方文档翻译 七 2.Adding the Action Bar
Adding the Action Bar 增加一个Action Bar(工具栏) The action bar is one of the most important design element ...
- SQL安全执行
begin tran begin -----------执行SQL开始----------------- update Audioset Name =3 -----------执行SQL结束----- ...