《嵌入式网络编程课件.pptx》由会员分享,可在线阅读,更多相关《嵌入式网络编程课件.pptx(33页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、课程介绍课程类别:专业核心课课程学时:40学时,上课16学时,实验24学时考核方式:平时(10%)+实验(30%)+期末考试(60%)先修课程:计算机网络基础、程序设计方法和操作系统第1页/共33页课程介绍教材:计算机网络编程与数据通信,罗惠琼等,国防工业出版社参考资料:计算机网络:自顶向下方法、UNIX网络编程卷1:套接字联网API(第3版)、Linux网络编程、Windows网络编程、GSM07.07规范、CAN规范V2.0第2页/共33页课程内容套接字网络编程串口通信编程GPRS和AT指令CAN总线及其编程第3页/共33页第一章 网络编程概述网络编程概念网络编程模型第4页/共33页1.1
2、 网络编程概念网络编程:通过使用套接字来达到进程间通信目的的编程。网络编程是基于传输层及其之上提供的服务接口进行编程,如:Unix/Linux提供Socket套接字编程接口,Windows提供WinSock套接字编程接口。网络编程的语言:C、C+、Java、PHP、ASP、JSP、.NET、C#等。第5页/共33页1.1 网络编程概念网络编程与TCP/IP体系结构的关系第6页/共33页1.1 网络编程概念字节序:不同的CPU和操作系统平台上存储数据的方式不同,包括小端(Littleendian)和大端(Bigendian)。数据0 x0A0B0C0D的大小端存储形式如下:第7页/共33页1.1
3、 网络编程概念CPU大小端检测:intcheckCPU()unionwinta;charb;c;c.a=1;return(c.b=1);CPU是大端则返回0,是小端则返回1。第8页/共33页1.1 网络编程概念网络字节序:网络上传输数据时所使用的字节顺序。主机字节序:主机中表示数据所使用的字节顺序。网络字节序是确定的,主机字节序是不同的网络字节序和主机字节序在进行网络通信时要进行相互转换。第9页/共33页1.1 网络编程概念网络字节序使用大端模式。不同CPU和OS的主机字节序如下:CPUOS字节序Intel x86全部小端MIPSNT小端MIPSUNIX大端ARM全部大/小端第10页/共33页
4、第一章 网络编程概述网络编程概念网络编程模型第11页/共33页1.2 网络编程模型Unix/Linux网络I/O模型Windows网络I/O模型线程模型进程模型成熟的I/O框架第12页/共33页1.2.1 Unix/Linux网络I/O模型阻塞I/O模型(BlockingI/O)非阻塞I/O模型(Non-blockingI/O)I/O复用模型select、poll和epoll(I/OMultiplexing)信号驱动I/O模型(SignalDrivenI/O,SIGIO)异步I/O模型(AsynchronousI/O)第13页/共33页Unix/Linux网络I/O模型-阻塞I/O模型(Blo
5、ckingI/O)1.2.1 Unix/Linux网络I/O模型第14页/共33页Unix/Linux网络I/O模型-非阻塞I/O模型(Non-blockingI/O)1.2.1 Unix/Linux网络I/O模型第15页/共33页1.2.1 Unix/Linux网络I/O模型I/O复用模型(I/OMultiplexing)第16页/共33页1.2.1 Unix/Linux网络I/O模型信号驱动I/O模型(SignalDrivenI/O,SIGIO)第17页/共33页1.2.1 Unix/Linux网络I/O模型异步I/O模型(AsynchronousI/O)第18页/共33页1.2.1 Un
6、ix/Linux网络I/O模型比较第19页/共33页1.2 网络编程模型同步I/O:同步I/O操作导致请求进程被阻塞,直到I/O操作完成。(I/O操作是指真实的I/O操作)异步I/O:异步I/O操作不导致请求进程被阻塞。同步I/O操作包括阻塞I/O模型、非阻塞I/O模型、I/O复用模型、信号驱动I/O模型。异步I/O操作包括异步I/O模型第20页/共33页1.2.2 Windows网络I/O模型阻塞和非阻塞模型选择模型(Select)异步选择模型(WSAAsyncSelect)事件选择模型(WSAEventSelect)重叠I/O模型(OverlappedI/O)I/O完成端口模型(I/OCo
7、mpletionPort,IOCP)第21页/共33页1.2.2 Windows网络I/O模型异步选择模型(WSAAsyncSelect)Select模型的异步版本基于Windows的消息机制需要创建窗口第22页/共33页1.2.2 Windows网络I/O模型阻塞和非阻塞模型选择模型(Select)异步选择模型(WSAAsyncSelect)事件选择模型(WSAEventSelect)重叠I/O模型(OverlappedI/O)I/O完成端口模型(I/OCompletionPort,IOCP)第23页/共33页1.2.2 Windows网络I/O模型事件选择模型(WSAEventSelect
8、)Select模型的异步版本基于事件机制事件处理函数处理事件,不需要创建窗口第24页/共33页1.2.2 Windows网络I/O模型阻塞和非阻塞模型选择模型(Select)异步选择模型(WSAAsyncSelect)事件选择模型(WSAEventSelect)重叠I/O模型(OverlappedI/O)I/O完成端口模型(I/OCompletionPort,IOCP)第25页/共33页1.2.2 Windows网络I/O模型重叠I/O模型(OverlappedI/O)异步I/O模型,使用一个重叠的数据结构一次投递一个或多个WinsockI/O请求。同一个线程可以对多个I/O对象进行I/O操作
9、,不同的线程也可以对同一个I/O对象进行操作。事件对象通知:事件通知的方式。完成例程:回调函数方式。重叠I/O模型能达到更佳的系统性能,高于选择模型、异步选择模型和事件模型第26页/共33页1.2.2 Windows网络I/O模型阻塞和非阻塞模型选择模型(Select)异步选择模型(WSAAsyncSelect)事件选择模型(WSAEventSelect)重叠I/O模型(OverlappedI/O)I/O完成端口模型(I/OCompletionPort,IOCP)第27页/共33页1.2.2 Windows网络I/O模型I/O完成端口模型(I/OCompletionPort,IOCP)基于重叠
10、I/O模型使用线程池技术线程数目一般为当前电脑中CPU个数的2倍第28页/共33页1.2.3 线程模型线程模型每个请求创建一个线程,使用阻塞式I/O操作使用线程池,同样使用阻塞式I/O操作使用非阻塞I/O操作+I/O多路复用Leader/Follower等高级模式第29页/共33页1.2.4 进程模型多个工作进程实现相同的功能多个进程竞争处理客户的请求,但每个请求只被一个进程处理第30页/共33页1.2.5 成熟的I/O框架ACEASIOLibev(Libevent)等等第31页/共33页第一章 网络编程概述网络编程概念网络编程、字节序网络编程模型Unix/Linux网络编程模型、Windows网络编程模型、线程模型、进程模型和成熟的I/O框架第32页/共33页感谢您的观看。第33页/共33页