boost 网络,boostasio网络编程
促进高性能网络编程
促进高性能网络编程
2010-10-25 13:04
一、课程目标围绕高性能网络编程这一主题,本课程选择Boost。Asio,助推。来自众多Boost类库的Thread等配套实用库为主要学习内容。通过本课程的学习,学生将具备以下能力:
掌握智能指针、高阶函数对象、对象序列化/反序列化等类库的使用;了解现代操作系统的线程模型、并发和同步机制;熟练使用Boost。线程线程管理和同步机制接口,开发并发应用;深刻理解现代操作系统中事件的多通道分离调度机制,如select、epoll等。理解异步I/O,完成事件的调度;熟练使用Boost。Asio将构建稳定、高效和灵活的网络应用。二。参与要求本课程的参与者必须具备以下能力:
精通C语法,了解C面向对象和泛型(模板)机制;了解TCP/IP协议,有网络编程概念。三。课程实践环境学生要自带计算机实践平台(以下两者之一):Win32/Visual Studio 2008(或更新版本)Linux 2 . 6 . 18 x86-32/GCC 4 . 1 . 2/Eclipse CDT、vi Boost 1.47.0注:上课前,学生要设置好上述开发实践环境。如果有任何困难,他们可以通过e。
四。课程大纲本课程由以下部分组成:
1.助推。序列化-基本类型和自定义类型的序列化;数组、指针和智能指针的序列化;STL容器和std:string的序列化;已识别类的版本;档案;XML格式;以二进制格式存档。
2.助推。smart _ Ptr-智能指针查看STD:Auto _ Ptr;没有可复制语义的Scoped _ ptrshared _ ptrweak _ ptrenable _ shared _ from _ this
3.助推。绑定和增强。函数——什么是与之相关的函数对象?复习std:bind1st()、std:bind2nd()、std:mem_fun()、std:ptr_fun()等适配器;升压绑定();升压功能;升压ref().
4.助推。signals 2-实现回调机制Boost Signal2:线程安全的Signal-Slot机制(发布者信号/订阅者 slots),即观察者模式的实现;简单回调;多个插槽回调;管理连接;举几个例子。5.一些实用的类库助推。属性_树;助推。格式;
6.助推。线程——多线程线程和进程的区别;用户线程和内核线程;不同操作系统中的线程模型;线程管理:线程创建、中断、分离/连接等。同步机制:互斥、锁、条件变量、TSS等。
7.助推。网络编程助推。Asio库通过封装各种操作系统的原生socket API、事件解复用和异步I/O API,构成了一个性能优异、可移植性高、易于编程的网络编程框架,使复杂的网络编程任务变得简单、安全、高效。
Asio相关概念:同步I/O和异步I/O、Proactor模式、Asio和线程;Linux下的I/O事件解复用机制:select,epoll;TCP I/O服务器/客户端同步编程示例:UDP同步I/O服务器/客户端编程示例:异步TCP I/O服务器/客户端编程示例:UDP异步I/O服务器/客户端编程示例:Timer-Timer;of Asio核心接口介绍。8.高性能网络编程探讨。研究了高性能网络编程应遵循的原则,讨论了并发、同步、事件解复用等机制的适用场合。网络应用的瓶颈在哪里?事件解复用vs每个连接一个线程(事件解复用vs每个连接一个线程);同步I/O vs异步I/O(同步I/O vs异步I/O);如何正确使用多线程?什么时候我需要多个事件多路分解线程?9.应用层协议的定义与实现为什么要定制应用层协议?定义应用层协议(以XMMEP协议为例);用C实现自定义协议(以XMMEP协议为例)。注意:XMMEP是X-messenger消息交换协议。
5.课程时间安排:3天,每天6小时。具体安排如下:
1 1 1-Boost . serialization-serialization 2-Boost。智能指针3-增强。绑定和增强。功能-功能对象关联4-Boost。signals 2-回调机制的实现5-一些实用的类库Day2 6- Boost。线程-多线程7-Boost。asio-网络编程1天3 7-Boost。asio-网络编程2 8-关于高性能网络编程的讨论9-应用层协议VI的定义和实现的课程回顾和总结。有关可用的课程资源,请参阅:教学资源。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。