您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 网络通信技术-深圳职业技术学院精品课程展示
项目11:基于WindowsCE5.0的嵌入式Web服务器(1)本节课程主要知识点套接字Socket基于TCP/IP的应用程序重点和难点重点套接字Socket基于TCP/IP的应用程序难点Socket编程套接字Socket套接字Socket套接字(Socket)最初是由加利福尼亚大学Berkeley分校为UNIX操作系统开发的网络通信接口,随着UNIX操作系统广泛使用,套接字成为当前最流行的网络通信应用程序接口之一。WindowsSocketsAPI是微软Windows的网络程序设计接口,它在继承了BerkeleySockets主要特征的基础上,又对它进行了重要扩充。Socket与电话电话系统与面向连接的Socket非常相似。通电话的两个人相当于相互通信的两个进程。通话双方所在的地区相当于一个网络,区号是它的网络地址。区内一个单位的交换机相当于一台主机,主机分配给每个用户的局内号码相当于Socket号。Socket与电话连接的过程对方都在现场并空闲(相当于通信的另一主机开机接受连接请求),拿起电话话筒,双方就可以正式通话,相当于连接成功。双方通话的过程,是向电话机发出信号和从电话机接收信号的过程,相当于向Socket发送数据和从Socket接收数据。通话结束后,一方挂起电话机,相当于关闭Socket,撤消连接。Socket面临的问题网间进程通信要解决的是不同主机进程间的相互通信问题。为此,首先要解决的是网间进程标识问题。同一主机上,不同进程可用进程号唯一标识。但在网络环境下,各主机独立分配的进程号不能唯一标识该进程。操作系统支持的网络协议众多,不同协议的工作方式不同,地址格式也不同。因此,网间进程通信还要解决多重协议的识别问题。端口网络中可以被命名和寻址的通信端口,是操作系统可分配的一种资源。网络通信的最终地址不仅是主机地址,还包括可以描述进程的某种标识符。TCP/IP协议提出了协议端口(protocolport,简称端口)的概念,用于标识通信的进程。端口的使用端口是一种抽象的软件结构。即进程通过系统调用与某端口建立连接(binding)后,传输层传给该端口的数据都被相应进程所接收,相应进程发给传输层的数据都通过该端口输出。在TCP/IP协议的实现中,端口操作类似于一般的I/O操作,进程获取一个端口,相当于获取本地唯一的I/O文件。端口号每个端口都拥有一个叫端口号(portnumber)的整数型标识符,用于区别不同端口。由于TCP/IP传输层的两个协议TCP和UDP是完全独立的两个软件模块,因此各自的端口号也相互独立,如TCP有一个255号端口,UDP也可以有一个255号端口,二者并不冲突。地址网络通信中通信的两个进程分别在不同的机器上。在互连网络中,两台机器可能位于不同的网络,这些网络通过网络互连设备(网关,网桥,路由器等)连接。因此需要三级寻址主机所在的网络地址主机的地址主机上进程的标识符通常主机地址由网络地址和主机地址组成,在TCP/IP协议中用32位整数值表示,TCP和UDP均使用16位端口号标识用户进程。全相关一个完整的网间进程通信需要由两个进程组成,并且只能使用同一种高层协议。也就是说,不可能通信的一端用TCP协议,而另一端用UDP协议。因此一个完整的网间通信需要一个五元组来标识(协议,本地地址,本地端口号,远地地址,远地端口号)这样一个五元组,叫做相关(association),即两个协议相同的半相关才能组合成一个合适的相关,或完全指定组成一连接。Winsock在国际标准化组织开放系统互连ISO/OSI模型中,Winsock运行于会话层和传输层的接口处。Winsock是应用程序与传输协议之间的接口,是用于数据输入输出的管道。大多数WindowsCE网络通信都通过Winsock接口来实现。Socket应用程序应用程序不直接与TCP/IP程序进行交互,而是通过Socket编程接口使用TCP/IP协议栈的功能。Socket接口函数以库的形式存在。通过Socket编程接口,可以实现TCP客户、TCP服务器、UDP客户和UDP服务器等基本应用。基于TCP/IP的应用程序嵌入式WebServer一个嵌入式Web服务器包括TCP/IP栈、HTTP引擎、HTML生成器、格式解析器及Web页等。在数据采集过程中,被采集的数据首先通过数据采样保持器、A/D转换器等相关单元进入Web服务器,经过服务器的HTML生成器,转换成同浏览器匹配的格式,HTTP引擎把这些数据集成到Web网页中,通过TCP/IP栈把它输出到以太网,远程用户就可以通过浏览器来提取相关数据。嵌入式WebServer的构成WindowsCE内核及相关驱动程序包括整个操作系统及目标机外设系统资源的初始化,其中包括网卡、串口等。完整的WebServer包使用标准的Socket接口建立面向连接的TCP服务器程序,会根据客户端的请求,输出相应的数据到客户端。WEB页面当客户端使用IE来访问该Web服务器时,能够将存储在设备上的页面发送到客户端IE上来浏览。WindowsCE中的WebServerWindowsCE自带有一个WebServer,在需要时添加到内核中即可。在PB右侧的Catalog页面下,打开CoreOS–WindowsCEdevice–CommunicationServicesandNetworking–Server下,找到组件WebServer(HTTPD),点右键,选择AddtoOSDesign。Ping运行WindowsCE的目标设备可以响应外部主机发送的ICMP回显请求报文。因此,外部主机可以通过ping目标设备,来判断设备是否可达。通过这种方法,也可以验证设备的以太网驱动程序或其它网络设备的驱动程序是否运行正确,设备的IP地址、子网掩码和网关IP地址等是否配置正确,以及连接目标设备的物理线路是否工作正常。编写Ping编写一个ping的应用程序,应用在基于WindowsCE的设备上。命令用来检测外部主机是否可达。它向被测主机发送一份ICMP回显请求报文,然后等待返回的ICMP回显应答。几个问题Ping命令向目标对象发送什么数据?有多少个字节?Memset函数的使用方法?Ping命令发送数据包的个数是多少?如何修改?
本文标题:网络通信技术-深圳职业技术学院精品课程展示
链接地址:https://www.777doc.com/doc-320091 .html