电脑爱好者,提供IT资讯信息及各类编程知识文章介绍,欢迎大家来本站学习电脑知识。 最近更新 | 联系我们 RSS订阅本站最新文章
电脑爱好者
站内搜索: 
当前位置:首页>> Linux专题>>组建Linux与Windows CE网络:

组建Linux与Windows CE网络

来源:www.cncfan.com | 2006-1-13 | (有1933人读过)

背景介绍

Linux是一个类似于UNIX的操作系统,它起源于芬兰一个名为LinusTorvalds的业余爱好,但是现在已经是最为流行的一款免费操作系统。普通用户在Linux上办公、浏览网站、发送邮件以及玩游戏,许多大学和科研机构也Linux 来完成日常的计算任务。在商业领域,由于Linux系统价格低、安全性能高并且非常稳定,许多公司均将自己的服务器构建在Linux的基础上。根据国际商用数据公司(IDC)的统计,世界上大约有三分之一的网站服务器使用Linux作为操作系统。

WindowsCE,根据微软公司在WindowsCE and PocketPC:FAQ中的定义,是操作系统开发商用以构建专有操作系统的一系列组件。原始设备制造商(OEM)可以向微软公司购买一个称为"WindowsCE平台开发系统"的集成开发环境并利用该系统组装和编译基于WindowsCE的操作系统,该操作系统包括一系列基于Windows CE 的组件以及开发商自行开发的应用软件或者是设备驱动程序。由于基于Windows CE 的操作系统具有与微软Windows 系列操作系统相类似的用户界面,因此受到众多最终用户以及开发商的青睐。目前WindowsCE已经被广泛应用在手机,掌上型电脑,个人数字助理,快译通以及电子字典等便携式设备上。

长期以来,WindowsCE设备的用户还需要配备一台基于Windows9x/2000/NT的主机用于与Windows CE设备交换数据。在该主机上运行微软公司提供的WindowsCE服务软件,该软件通过一条RS-232数据线与WindowsCE设备建立起点对点连接,用户可以通过这个服务软件访问WindowsCE设备,但是局域网里面的其它计算机不能够访问该WindowsCE设备。如果需要使得局域网里面的其它计算机也能够访问该设备,则需要为该设备安装昂贵的专用网卡以及相关接入设备,是一种非常不经济的解决方案。

本文利用RedHatLinux7.2操作系统自带的PPP服务器与WindowsCE设备之间建立起TCP/IP连接,然后在Windows CE设备上运行一个FTP服务器使得Linux主机能 够访问Windows CE设备上的资源。由于本方法基于Windows CE设备自带的RS-232数据线,不需要购买额外的任何设备,因此是一种经济实用的解决方案。此外,本文所介绍的解决方案,对Windows 9x/2000/NT主机同样适用。

连接Linux与Windows CE

点对点数据传输协议(Point to Point Protocol, PPP)是一个通过串口线传送 IP数据包的协议。使用PPP协议,一台计算机能够通过串口线、电话线等通讯设备登陆到远程主机并且利用该主机或者是主机所在网络的资源。在点对点通讯中包括服务器和客户机两个部分,其中客户机向服务器请求网络连接,服务器接收客户机的请求建立网络连接并分配给客户机相应的网络资源。当网络连接建立起来以后,服务器和客户机之间是严格对等的。由于Linux操作系统通常都带有PPP服务器和客 户端程序,而Windows CE操作系统通常仅带有PPP客户端程序,因此我们使用Linux 主机作为PPP服务器,Windows CE设备作为PPP客户端。

为了使用Linux主机作为PPP服务器,我们首先必须确认该主机上是否已经安装有PPP服务器程序pppd。通常该程序被安装在/usr/sbin目录下,我们可以利用下面 的命令查找该目录下是否存在这个文件:

ls /usr/sbin/pppd

最近正式发行的Linux操作系统(例如RedHatLinux6.x/7.x)通常都已经预先安装有PPP服务器程序。如果Linux主机尚未安装PPP服务器,那么我们应该首先下载并安装一个PPP服务器程序,例如pppd2.3.4。安装该程序包可能还需要其它包的支持,由于应用程序的安装已经超出了本文的讨论范围,请感兴趣的读者自行参考 其它相关资料。

确认PPP服务器已经安装在Linux主机上之后,我们需要对Linux主机进行一些必要的配置,为了进行这些配置我们需要拥有root权限。

建立文件/etc/ppp/peers/wince,内容如下:


quote:
--------------------------------------------------------------------------------

/dev/ttyS0 115200 crtscts
connect '/usr/sbin/chat -v -f /etc/ppp/wince.chat'
noauth
local
90.0.0.1:90.0.0.2

--------------------------------------------------------------------------------


建立文件/etc/ppp/wince.chat,内容如下:


quote:
--------------------------------------------------------------------------------

TIMEOUT 3600
"CLIENT" "CLIENT\c"
"" "SERVER\c"



--------------------------------------------------------------------------------


在上面的两个配置文件中,使用wince 作为文件名仅仅是用来表示这个配置文 件是给一个Windows CE设备使用的。读者也可以自行选用其它的文件名,例如palm 或者是handheld等等,但是必须保证两个文件名是一致的。

配置文件/etc/ppp/peers/wince指定使用串口ttyS0以115,200bps的速率与客户设备建立连接,noauth参数说明在客户机请求连接的时候不需要身份认证。在这个对等连接中,服务器(Linux主机)的IP是90.0.0.1,客户机(WindowsCe设备)的IP是90.0.0.2。配置文件/etc/ppp/wince.chat中的TIMEOUT参数指定服务器的等待时间,如果超过这个时间仍然没有接收到客户机的连接请求则终止当前的服务器程序。如果有读者需要更进一步的了解相关的配置,请自行参考chat以及pppd的相关文档。

在WindowsCE设备端需要做的配置相对来说比较简单。由于WindowsCE默认的自动连接功能占用了该设备的串口,我们首先需要停止使用该功能。在开始菜单中选择"设置->通讯->PC连线"并将其设置为不启用与PC的连接即可停止该功能。然后我们重新建立一个连接,在开始菜单种选择"程序->通讯->连接管理器",然后点击"新建连接"图标,将新的连接命名为Linux并指定连接类型为"直线连接",在下一步中指定使用COM1进行连接并设置其通讯速率为115,200,在TCP/IP设置中指定该设备的IP为90.0.0.2。点击OK存盘以后该连接会出现在"程序->通讯"菜单里面。

利用如下命令在Linux主机上启动PPP服务器:

pppd call wince

在Windows CE 设备上启动新建的连接(程序->通讯->Linux)之后,网络连线图 标会出现在Windows CE设备的任务栏上,Linux 主机则显示如下信息表明已经成功 与Windows CE设备建立起连接:


quote:
--------------------------------------------------------------------------------

Serial connection established.
Using interface ppp0
Connect: ppp0 <--> ttyS0
found interface eth0 for proxy arp
local IP address 90.0.0.1
remote IP address 90.0.0.2

--------------------------------------------------------------------------------


我们还可以使用Linux 主机提供的ping命令来验证是否已经成功与Windows CE 设备建立连接:

ping 90.0.0.2

如果Linux主机已经成功的与WindowsCE设备建立连接,那么我们应该能够看到类似于下面的信息:


quote:
--------------------------------------------------------------------------------

PING 90.0.0.2 (90.0.0.2) from 90.0.0.1 : 56(84) bytes of data.
64 bytes from 90.0.0.2: icmp_seq=0 ttl=32 time=26.587 msec
64 bytes from 90.0.0.2: icmp_seq=1 ttl=32 time=19.928 msec
64 bytes from 90.0.0.2: icmp_seq=2 ttl=32 time=19.939 msec
64 bytes from 90.0.0.2: icmp_seq=3 ttl=32 time=19.947 msec

--------------------------------------------------------------------------------

Linux专题热门文章排行
网站赞助商
购买此位置

 

关于我们 | 网站地图 | 文档一览 | 友情链接| 联系我们

Copyright © 2003-2024 电脑爱好者 版权所有 备案号:鲁ICP备09059398号