完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本文转自迅为:http://topeetboard.com 大家好,上一章我们讲了在iTOP-4412开发板上搭建web服务器,这一章我 们在前面一章的基础上讲解一下通过web网页实现控制LED。 要实现控制led,我们需要CGI编程,CGI(Common Gateway Interface)是外 部应用扩展,应用程序与www服务器交互的一个标准接口。按照CGI标准编写的 外部扩展应用程序可以处理客户端浏览器输入的数据, 从而完成客户端与服务器的 交互操作。而CGI规范就定义了web服务器如何向扩展应用程序发送消息,在收 到扩展应用程序的信息后又如何进行处理等内容。通过CGI可以提供许多静态的 HTML网页无法实现的功能。比如搜索引擎、基于web的数据库访问等等。 首先进入到我们的NFS文件系统所在的目录,如下图: 在前面的搭建web服务器章节, 我们在修改boa.conf配置文件的时候指定了web 网页的存放目录“DocumentRoot /www” ,现在我们打开之前我们在www目录创建的index.html,如下图所示: 打开index.html后,删除掉里面的内容,然后输入下面的内容: tional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> body { background-color: #999900; text-align: center; } .ziti { font-size: 24px; } .juzhong { text-align: center; } .hsz { text-align: center; } .hsz td { color: #00F; font-size: 18px; } .hsz { background-color: #FCC; } .juzhong table { text-align: center; } .juzhong table tr { } #h1 { background-color: #0FC; } #h2 { background-color: #FF9; } .h3 { background-color: #0CF; } .ys1 { font-size: 24px; } .STYLE1 {font-size: 36px}
如下图所示: 然后保存并退出。上面输入的是HTML格式的代码,主要是用到了通过表单向服 务器提交信息,在表单里面指定了服务器端处理接收到信息的CGI程序是myled, 这是在form表单的属性里设置的,代码是“form action="/cgi-bin/myled.cgi" method="get” ,使用的传递数据的方式是get方法,如下图所示: 修改完了index.html,我们需要些CGI程序。在boa的配置文件boa.conf里面 我们指定了CGI程序的存储目录是“ScriptAlias /cgi-bin/ /www/cgi-bin/” ,如 下图所示: 现在我们进入到NFS文件系统的www/cgi-bin目录,如下图所示: 然后再cgi-bin目录我们创建myled.c,如下图所示: 然后在myled.c里输入下面的代码: #include #include int main() { char *data; int leds[2] = {0, 0}; long m, n; int exit=0,i,fd; printf("Content-Type:text/html;charset=gb2312nn"); printf("n"); printf("n"); printf(" printf(" iTOP-4412");data = getenv("QUERY_STRING"); printf(" receive data:%s ",data);while(*data != ' |