嵌入式linux httpd,GitHub - helight/xhttpd: 基于WEB的嵌入式监控系统

基于WEB的嵌入式监控系统

“基于WEB的嵌入式控制系统”软件是在传统意义下的远程监控的基础上,融合了WEB和嵌入式技术,从而提供比传统远程监控更为强大的功能。

该系统以嵌入式Linux为目标系统,以B/S软件体系结构架起客户端与目标系统之间的桥梁;以简单标准的CGI支持为基准,自行开发了轻量级的Web服务器。以开放式的开发框架为设计准则,为最终用户提供了扩充功能和二次开发的优势。

本系统的开发采用了业界流行的开源协作开发模式,使任何有兴趣的开发者都可以较容易地参与进来。本系统可以直接使用在一些产品中。比如一般的交换机,路由器,家电设备,甚至工业控制设备等的远程控制上。该系统具有实用性和可扩展性,值得推广。

关键技术:

Web服务器开发(实现标准的HTTP1.0和1.1协议)

支持标准的CGI技术

与SNMP接口实现(在实现中。。。)

特点:

实现轻量级Web服务器,更适合嵌入式环境

Web服务器支持更为适合嵌入式开发的简化CGI,是应用开发更简易,快捷

采用开放框架设计,以支持企业,个人的二次开发

与SNMP相结合,以增强Web的管理能力和相对减少Web应用程序开发的工作量

本系统具有良好的可移植性,可以使用在交换机,路由器,家电设备及其工控设备上

采取先进的源码开放的开发模式

目前项目应用:

目前该项目已经被西安邮电学院NMS项目组所采用,并且在该系统中开发了针对于微波设备的远程管理系统!!!

感谢该项目组的支持!!!

项目目前情况:

已初步完成web服务器程序,但有待继续完善优化。

增加了登录管理系统,也在进一步完善中。。。

简要使用手册:

目前还处于测试阶段,测试方法是,在程序目录中运行一下命令:

make

./xhttpd

目前端口可以由配置文件中配置。在系统控制的应用程序上目前比较缺少。只实现了文件系统浏览等少数操作,熟悉C语言又对嵌入式Linux感兴趣者,均可以地加入该项目。

加入该项目

你只需要会C语言,html语言和熟悉Linux,你就可以加入我们。

看到越来越多的人愿意加入这个项目,也使我充满信心。

谢谢的大家的支持,系统还在开发中。。。

PS:一开始我们可以从小程序开始,在这个系统中有很多比较简单的小程序,大家可以拿来练习一下,然后让自己的练习代码也出现在这个系统中,而不是让自己的练习代码最终成为回收站中的东西!!!

无论多简单的代码,也是一份力量!!!我们一直在努力!!!

NanoHTTPD是一个免费、轻量级的(只有一个Java文件) HTTP服务器,可以很好地嵌入到Java程序中。支持 GET, POST, PUT, HEAD 和 DELETE 请求,支持文件上传,占用内存很小。可轻松定制临时文件使用和线程模型。NanoHTTPD for JDK 1.1https://github.com/NanoHttpd/nanohttpd/tree/nanohttpd-for-java1.1示例代码:package fi.iki.elonen.debug;   import fi.iki.elonen.NanoHTTPD; import fi.iki.elonen.ServerRunner;   import java.util.HashMap; import java.util.List; import java.util.Map;   public class DebugServer extends NanoHTTPD {     public DebugServer() {         super(8080);     }       public static void main(String[] args) {         ServerRunner.run(DebugServer.class);     }       @Override public Response serve(IHTTPSession session) {         Map<String, List<String>> decodedQueryParameters =             decodeParameters(session.getQueryParameterString());           StringBuilder sb = new StringBuilder();         sb.append("<html>");         sb.append("<head><title>Debug Server</title></head>");         sb.append("<body>");         sb.append("<h1>Debug Server</h1>");           sb.append("<p><blockquote><b>URI</b> = ").append(             String.valueOf(session.getUri())).append("<br />");           sb.append("<b>Method</b> = ").append(             String.valueOf(session.getMethod())).append("</blockquote></p>");           sb.append("<h3>Headers</h3><p><blockquote>").             append(toString(session.getHeaders())).append("</blockquote></p>");           sb.append("<h3>Parms</h3><p><blockquote>").             append(toString(session.getParms())).append("</blockquote></p>");           sb.append("<h3>Parms (multi values?)</h3><p><blockquote>").             append(toString(decodedQueryParameters)).append("</blockquote></p>");           try {             Map<String, String> files = new HashMap<String, String>();             session.parseBody(files);             sb.append("<h3>Files</h3><p><blockquote>").                 append(toString(files)).append("</blockquote></p>");         } catch (Exception e) {             e.printStackTrace();         }           sb.append("</body>");         sb.append("</html>");         return new Response(sb.toString());     }       private String toString(Map<String, ? extends Object> map) {         if (map.size() == 0) {             return "";         }         return unsortedList(map);     }       private String unsortedList(Map<String, ? extends Object> map) {         StringBuilder sb = new StringBuilder();         sb.append("<ul>");         for (Map.Entry entry : map.entrySet()) {             listItem(sb, entry);         }         sb.append("</ul>");         return sb.toString();     }       private void listItem(StringBuilder sb, Map.Entry entry) {         sb.append("<li><code><b>").append(entry.getKey()).             append("</b> = ").append(entry.getValue()).append("</code></li>");     } } 标签:NanoHTTPD
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值