基于嵌入式系统的web_server的方法

文档序号:9865189阅读:460来源:国知局
基于嵌入式系统的web_server的方法
【技术领域】
[0001]基于嵌入式系统的web_server的方法主要涉及计算机系统方面领域。
【背景技术】
[0002]随着微电子技术、计算机技术的飞速发展,嵌入式系统得到广泛的应用。由于嵌入式系统具有体积小、功耗低、功能强等特点,嵌入式系统己广泛地应用于工业控制系统、信息家电、通讯设备、医疗仪器、军事设备等众多领域,人们日常生活和工作中接触的仪器和设备中,大都嵌入了高效的微处理器。它们中的大多数还游离于Internet之外,但随着网络技术的发展和应用,越来越多的嵌入式设备要求内嵌Web服务器,以便通过Internet网络对它们进行访问,实现远程控制和信息共享的目的。
[0003]

【发明内容】

通过国家专利检索没有发现关于此系统方面的申请资料。
[0004]此方法主要是选择实现一个支持CGI的非常适合于嵌入式系统的Boa WebServer0
[0005]Bo a是一个单任务的HTTP服务器,源代码开放、性能高,它最初的设计目标是提供快速的安全的HTTP服务器。它的关键程序是:
(I)建立套接口 ser ver So cket=socket (A F INETj SO CK STREAM, 0); if (serverSocket==-l)
{printf(〃 In vaildso cket\n〃);exit (I);
}o
[0006](2)将套接口连接到HTTP服务默认端口 80//填写结构sockaddr in和域。
[0007]serverAddrsi n_f amiIy=AF INET;serverAddrsi n_port=htons(port);serverAddrsi n-ad dr.s_addr=htonl(INADDR—ANY);memset(&(serverAddrsin_zero), 0,8);
//将套接口与端口联系在一起
rc=bind(serverSocket, (structso ckaddr^feserverAddrsi zeof (structsockaddr)) ;//bind 操作失败if (rc==_l)
{
prin tf ( Bad bind\n〃);exit (I);
}o
[0008](3)监听套接口 //开始监听端口上的套按口连接,队列长度设为10 rc=listen(serverSocket, 10) ;// 监听操作失败if (r c=-l)
{
prin tf ( 〃Ba dli sten\n〃);exi t (I );
}o
[0009](4)接收客户端的连接请求; while (I)//等待客户连接
die ntA dd rSize=sizeof (struct sockaddr_in)do
{soc k=accept (serverSocket, (struct sockaddr*)&clientAddr,
&cilentAddrSize);
}
while ((sock==-l) &&(errno==EINTR)) V/ 连接失败if (s ock ==-1)
{
prin tf ( 〃Bada ccept\n〃);exi t (I );
}o
[0010](5)接收客户端数据; i=recv (sock.recvBufer, 4000,0);
刀读取失败
if(i =- D
ber ak ;
(6)向客户端发送数据 //标识传送字节数 totalSen t=0;
//循环发送每个字节 do {
bytesSent=sent(sock, cbuf+totalSent, strlen(cbuf+totalSent),0);
if ( bytesSen t==-1)
break;
totalSent+=byte sSent;
}
while (totalSent〈size);
具体操作是在uC Iin ux下实现Boa,需要对Boa做一些配置和修改。这主要通过对boaesco uf和mime, types文件进行修改来实现,需要改动的配置有以下几项:
(I)建目录:
由于u cl inux默认的根文件系统romfs是只读的,不能用mkdir等命令来新建目录,故应在编译内核前先建好要用到的目录,这通过修改makefile文件来实现。在ROMFSeDIRS=bin dev etc home lib unit pros usr var 的后边增力口 home/web home/web/cg1-bin,这样修改后编译内核,编译好的根文件系统romfs中就包含这些目录了。
[0011](2)指定W eb服务器的根目录路径进入/ ucl inux-dis/tuser/boa/src/目录,通过修改 defme.h 文件中 #defineE RVER_R00T 〃/home〃语句来指定 SERVER ROOT。另夕卜,还可以通过命令行来指定,例如:boa-c/home/&。而且命令行指定的SERVER ROOT可以覆盖defme.h文件
所指定的。
[0012](3)修改 b oa.conf 文件在 bo a.co nf 里修改:
将 use ro b odyG roupO g roup 改为 U se r0 G roupO。
[0013]默认首页和CGI程序所在目录,即Di rec to ryindexi ndex.htnil
Scr ipt Al ias/cgi_bin//h ome/web/cg1-bin/这样指定后,index, htm为远程浏览客户访问WebS erver所看到的首页默认值,用C编写的CGI程序编译成二进制文件,放到/cg1-bin/目录下,CGI程序能被正确地执行。
[0014]Bo a.c onf文件和mime却pes文件必须放到Web服务器根目录下,所以把修改后的 ba0.conf 和 mime, types 拷贝到“./uclinux_dist/romfs/home/〃 目录下.为了让 Boa做作为一种服务启动,这需要更改inittab文件,在:inetunknown./bin/inetd后添加如下行:boa:unknown:/bin/boac/home.配置过程后,重新编译内核,编译时选中Boa选项。把编译好的内核下载到硬件,启动UClinux,完成IP配置,启动Boa Web Server,这样就可以通过EE访CGI网页了。如果想启动uClinux时自动启动Boa Web Server,可以修改rc文件。
[0015]修改后重新编译内核,再下载到开发板运行。运行uclinux后,不需要配置就可以直接通过正来访问网页了。
【主权项】
1.基于嵌入式系统的web—server的方法其主要是通过其建立套接口、将套接口连接到HTTP服务默认端口 80、监听套接口、接收客户端的连接请求、接收客户端数据完成、向客户端发送数据。2.根据权利要求1中的建立套接口其代码是server So cket=socket (A F INETj SOCK STREAM, 0);if (serverSocket== — I){printf(〃 In vaildso cket\n〃);exit (I); }o3.根据权利要求1中的将套接口连接到HTTP服务默认端口80其代码是:serverAddrsi n_f amiIy=AF INET;serverAddrsi n_port=htons(port);serverAddrsi n-ad dr.s_addr=htonl(INADDR—ANY);memset(&(serverAddrsin_zero), 0,8); rc=bind(serverSocket, (structso ckaddr〃&serverAddrsi zeof (structsockaddr);if (serverSocket== — I){printf C bad bind\n〃);exit (I); }o4.根据权利要求1中监听套接口其代码:rc=listen(serverSocket,10)。5.根据权利要求1中接收客户端的连接请求其代码 while (I)die ntA dd rSize=sizeof (struct sockaddr_in)do{soc k=accept (serverSocket, (struct sockaddr*)&clientAddr,&cilentAddrSize); }while ((sock==-l)&&(errno==EINTR)if (sock == -1) {prin tf ( 〃Bada ccept\n〃);exi t (I ); }o6.根据权利要求1中接收客户端数据完成其代码表现:i=reCV(Sock.recvBufer, 4000,0);if (i =-1) berako7.根据权利要求1中向客户端发送数据其代码表现:totalSent=0; do {byt esS en t=s en t (sock,cbuf+totalSent,strlen(cbuf+totalSent),0);if ( bytesSent==-l)break;totalSent+=bytesSent;}while (totalSent<size)。
【专利摘要】基于嵌入式系统的web_server的方法主是嵌入式WebServer正是为了弥补传统服务器的不足,不同于传统的WebServer,它具有简单,廉价,功能完善和通用性强等特点,它能够提供远程用户访问和并对现场进行控制,能在远程监控,智能家电和资源共享等多种场合得到应用。
【IPC分类】G06F9/44
【公开号】CN105630464
【申请号】CN201410595880
【发明人】陈伟男
【申请人】镇江华扬信息科技有限公司
【公开日】2016年6月1日
【申请日】2014年10月30日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1