嵌入式linux下web server的问题
我想在设备里做一个webserver ,可以让客户通过浏览器直接访问设置设备,目前了解了一点;打算用boa做webserver ,用c编写cgi,那我如何让cgi和我的应用程序交互呢?cgi要获取应用程序产生的数据,同时也要把客户通过浏览器的设置信息发送到应用程序
------解决方案--------------------读设备端的参数区域就好!
设备端的参数肯定是保存在一块flash上!然后cgi也是去读这个文件数据就好!
------解决方案--------------------应用程序产生的数据 和 设置信息 都应该保存在flash上的,文件形式或 sqlite 数据库等,去这里读写就可以了。
------解决方案--------------------
参考路由器设计.
不太变化的使用配置文件.
频繁一点,有比较好的数据结构的,用数据库交互.需要支持锁(?)
频繁的,结构在应用程序中的.如某个c语言结构体.进程间通讯,共享内存什么的.也要有锁.
我的一个应用是配置保存在文件中.设备重启生效. 我觉得可以用在你这里的参数设置中
交互信息共享内存. 我觉得可以用在你这里的报警/清除等事务中.
数据库不太熟悉.倾向于配置过于复杂且逻辑结构分层明显的可以试试数据库.但我觉得json也不失为一种结构清晰的方式.
------解决方案--------------------
读设备端的参数区域就好!
设备端的参数肯定是保存在一块flash上!然后cgi也是去读这个文件数据就好!
两个进程会不会冲突?我程序的进程是一直打开文件没有关闭的,因为数据产生的比较频繁,不光是设置参数,还有报警记录。如果按照这种方法是不是每次打开文件后都要关闭?
不会!cgi只会去读取数据的!写数据也是有加锁操作的!
------解决方案--------------------写个http服务器,可以用第三方 libevent。路由器的设置不都是这玩意嘛
------解决方案--------------------4楼的做法比较靠谱。可以引入嵌入式数据库
------解决方案--------------------
读设备端的参数区域就好!
设备端的参数肯定是保存在一块flash上!然后cgi也是去读这个文件数据就好!
你好,我在另外你个帖子看到你给我的关于onvif的回复,感觉不错,请问如果我想即实现onvif和一般的wenbserver,2者有冲突吗?是不是boa和gSoap二者都要移植?二者有没有关系?
一点关系都没有!如果不是故意的话,应该是不会冲突的!我们现在做的产品是内嵌了boa模块和onvif协议的!
boa走的主要都是是有协议来了的!告诉客户端端的通信端口了
onvif协议是通过固定端口搜索到设备后,告诉你onvif协议通信的端口,默认情况是80!