首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

嵌入式操作系统Windows CE研究 02

嵌入式操作系统Windows CE研究 02

2 Windows CE 中的网络通信协议
    Windows CE的网络通信基于一个按层组织的网络堆栈[1 ] (network stack) ,如图2所示。网络堆栈实际上是Windows CE 的一个组件,它络堆栈实际上是Windows CE 的一个组件,它负责对网络中的数据传输进行处理,将来自于应用程序的数据分解成若干小段,并为每小段加上相关地址和段的分割信息,组成可以存贮转发的信息包(packets) ,信息包中的地址确保数据达到最终的目的端点。访问网络堆栈有如下三种方式:第一种是WinSock端口套接字方式。这是一个中间层的传输接口协议,WinSock 负责对建立的信息包的所有头信息细节进行处理, 但可以不管其数据格式。Windows CE 的网络通信都直接或间接地使用WinSock。采用IrDA 协议实现基于红外线套接字的客户/ 服务器网络通信是Windows CE平台的一个特色。第二种为WinInet API 方式。WinInet API是微软公司基于Win32 平台的互联网函数接口。Windows CE 的WinInet API 对其进行了某些限制或扩展,它提供的高级数据协议除了常见的超文本传输协议HTTP 和文件传输协议FTP 外,还提供了对SSL的支持。API 方式避免了直接使用WinSock 访问网络的操作,简化了网络编程。第三种为CIFS 重定位器方式。Windows CE 通过对远程访问服务RAS 客户的支持,允许基于Windows CE的设备与远程主机建立连接。
   3 Windows CE 中网络通信协议使用实例
    3.1 HTTP
    Windows CE提供了一个开发Internet 客户应用程序的工具集WinInet,与使用Socket 建立网络连接的方法相比,它简化了访问互联网络的操作细节。利用WinInet可连接到远程站点,访问HTML 页面,通过FTP 上传、下载文件或获取文件目录清单等。WinInet 的Windows CE版本类似于桌面平台上的WinInet ,但有两个重要的区别:一是在Windows CE 中,大多数callback 函数以同步方式处理,只有InternetReadFile和InternetQueryDataAvailable 具有同步和异步两种操作方式;二是Windows CE 默认支持Unicode 码,所有WinInet 函数都要求宽字符变量[4]。
    通过WinInet 实现网络通信最常见的例子是利用HTTP 协议访问Internet 站点上的HTTP 页面。其处理过程与桌面平台上的情况一致:
    1) 调用InternetOpen ,获取Internet 句柄;
    2) 调用InternetConnect ,为给定站点建立一个会话句柄;
    3) 调用HttpOpenRequest ,打开一个HTTP 请求句柄;
    4) 调用HttpSendRequest ,发送一个指定的请求到HTTP 服务器;
    5) 调用InternetReadFile ,从被HttpOpenRequest 所打开的句柄中读数,下载信息;
    6) 调用InternetCloseHandle ,关闭Internet 句柄。
    3.2 远程访问服务RAS
    RAS 是一个用于连接远端设备的基于软件的多协议路由器,也称为RAS 客户,对于桌面主机,则称为RAS 服务器。RAS 应用程序常在设备端上执行,并通过PPP/ SLIP 与服务器连接。WindowsCE对RAS 客户提供了支持。尽管有许多标准的Win32 RAS 函数,但这里仅允许通过串行电缆或拨号Modem 建立点对点的连接。在Windows CE 环境下,RAS 电话簿项目中包含有建立RAS 连接的必要信息,Windows CE 将其存贮在注册表中。RAS 电话簿信息包括:拨打的电话号码(含国家和地区代码) 、当前连接的IP 地址、网络协议、用于建立连接的设备类型。用RAS 建立连接的步骤如下[4]:
    1)确定呼叫的电话号码;如果该号码不在电话簿中, 则需要调用RasEnumEntries 函数查找。
    2)RasDial 建立连接;
    DWORD RasDial (LPCTSTR lpszPhonebook ,
    / / 电话簿文件的路径和文件名指针
    DWORD dwNotifierType ,
    / / RasDial 事件的句柄类型
    LPVOID lpvNotifier ,
    / / RasDial 事件的句柄
    LPHRASCONN lphRasConn
    / / 指向连接句柄类型变量) ;该函数的参数设置与桌面平台上的设置不同,要求将lpszPhonebook 设置为NULL ,dwNotifierType 设置为0xFFFFFFFF。
    3)当会话结束时,用RasHangUp 终止连接。
  DWORD RasHangUp ( HRASCONN hrasconn ) ;
    3.3 WAP应用
    通常,Web Server需要在目标机中置入文件系统,但是,嵌入式系统往往会面临有限的存储资源问题,文件系统会增加系统负担。Windows CE的Web Server设计了一个Web页的格式编辑器,可以将Java,GIF,JPEG,PDF,TIFF,HTML,ASCII转换成标准C源文件,可以与其他的应用程序链接,Web Server就在一个虚拟的文件系统下访问这些文件。
    在开发移动通信产品时候,需要用WAP协议,Windows CE提供了一个WAP的解决方案,开发起来非常方便。该协议栈可以支持任何标准的无线协议,包括GSM、UDP、GPRS等,协议栈包括WAE、WSP、WTP、WTLS、WDP等[3]。见图3。


图3 WAP应用


  此外,Windows CE还支持蓝牙协议、RFCOMM协议、SDP协议、L2CAP协议等。
返回列表