- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于WindowsCE50的嵌入式Web服务器
项目11:基于Windows CE 5.0的嵌入式Web服务器 (1) 本节课程主要知识点 套接字Socket 基于TCP/IP的应用程序 重点和难点 重点 套接字Socket 基于TCP/IP的应用程序 难点 Socket编程 套接字Socket 套接字Socket 套接字(Socket)最初是由加利福尼亚大学Berkeley分校为UNIX操作系统开发的网络通信接口,随着UNIX操作系统广泛使用,套接字成为当前最流行的网络通信应用程序接口之一。 Windows Sockets API是微软 Windows的网络程序设计接口,它在继承了Berkeley Sockets主要特征的基础上,又对它进行了重要扩充。 Socket与电话 电话系统与面向连接的Socket非常相似。 通电话的两个人相当于相互通信的两个进程。 通话双方所在的地区相当于一个网络,区号是它的网络地址。 区内一个单位的交换机相当于一台主机,主机分配给每个用户的局内号码相当于Socket号。 Socket与电话连接的过程 对方都在现场并空闲(相当于通信的另一主机开机接受连接请求),拿起电话话筒,双方就可以正式通话,相当于连接成功。 双方通话的过程,是向电话机发出信号和从电话机接收信号的过程,相当于向Socket发送数据和从Socket接收数据。 通话结束后,一方挂起电话机,相当于关闭Socket,撤消连接。 Socket面临的问题 网间进程通信要解决的是不同主机进程间的相互通信问题。 为此,首先要解决的是网间进程标识问题。同一主机上,不同进程可用进程号唯一标识。但在网络环境下,各主机独立分配的进程号不能唯一标识该进程。 操作系统支持的网络协议众多,不同协议的工作方式不同,地址格式也不同。因此,网间进程通信还要解决多重协议的识别问题。 端口 网络中可以被命名和寻址的通信端口,是操作系统可分配的一种资源。 网络通信的最终地址不仅是主机地址,还包括可以描述进程的某种标识符。 TCP/IP协议提出了协议端口(protocol port,简称端口)的概念,用于标识通信的进程。 端口的使用 端口是一种抽象的软件结构。即进程通过系统调用与某端口建立连接(binding)后,传输层传给该端口的数据都被相应进程所接收,相应进程发给传输层的数据都通过该端口输出。 在TCP/IP协议的实现中,端口操作类似于一般的I/O操作,进程获取一个端口,相当于获取本地唯一的I/O文件。 端口号 每个端口都拥有一个叫端口号(port number)的整数型标识符,用于区别不同端口。 由于TCP/IP传输层的两个协议TCP和UDP是完全独立的两个软件模块,因此各自的端口号也相互独立,如TCP有一个255号端口,UDP也可以有一个255号端口,二者并不冲突。 地址 网络通信中通信的两个进程分别在不同的机器上。在互连网络中,两台机器可能位于不同的网络,这些网络通过网络互连设备(网关,网桥,路由器等)连接。因此需要三级寻址 主机所在的网络地址 主机的地址 主机上进程的标识符 通常主机地址由网络地址和主机地址组成,在TCP/IP协议中用32位整数值表示,TCP和UDP均使用16位端口号标识用户进程。 全相关 一个完整的网间进程通信需要由两个进程组成,并且只能使用同一种高层协议。也就是说,不可能通信的一端用TCP协议,而另一端用UDP协议。因此一个完整的网间通信需要一个五元组来标识 (协议,本地地址,本地端口号,远地地址,远地端口号) 这样一个五元组,叫做相关(association),即两个协议相同的半相关才能组合成一个合适的相关,或完全指定组成一连接。 Winsock 在国际标准化组织开放系统互连ISO/OSI模型中,Winsock运行于会话层和传输层的接口处。 Winsock是应用程序与传输协议之间的接口,是用于数据输入输出的管道。 大多数Windows CE网络通信都通过Winsock接口来实现。 Socket应用程序 应用程序不直接与TCP/IP程序进行交互,而是通过Socket编程接口使用TCP/IP协议栈的功能。Socket接口函数以库的形式存在。 通过Socket编程接口,可以实现TCP客户、TCP服务器、UDP客户和UDP服务器等基本应用。 基于TCP/IP的应用程序 嵌入式Web Server 一个嵌入式Web服务器包括TCP/IP栈、HTTP引擎、HTML生成器、格式解析器及Web页等。 在数据采集过程中,被采集的数据首先通过数据采样保持器、A/D转换器等相关单元进入Web服务器,经过服务器的HTML生成器,转换成同浏览器匹配的格式,HTTP引擎把这些数据集成到Web网页中,通过TCP/IP栈把它输出到以太网,远程用户就可以通过浏览器来提取相关数据。 嵌入式Web Server的构成
文档评论(0)