URN Logo
UNIX Resources » Linux » China Linux Forum » C/C++编程版 » 39 » 求助:用cgi实现动态监测数据
announcement 声明: 本页内容为中国Linux论坛的内容镜像,文章的版权以及其他所有的相关权利属于中国Linux论坛和相应文章的作者,如果转载,请注明文章来源及相关版权信息。
Resources
China Linux Forum(finished)
Linux Forum(finished)
FreeBSD China(finished)
linuxforum.net
  业界新闻与评论
  自由软件杂谈
  IT 人生
  Linux软件快递
  翻译作坊
  Linux图书与评论
  GNU Emacs/XEmacs
  Linux 中文环境和中文化
  Linux桌面与办公软件
  Linux 多媒体与娱乐版
  自由之窗Mozilla
  笔记本电脑上的Linux
  Gentoo
  Debian 一族
  网络管理技术
  Linux 安装与入门
  WEB服务器和FTP服务器
  域名服务器和邮件服务器
  Linux防火墙和代理服务器应用
  文件及打印服务器
  技术培训与认证
  Linux内核技术
  Linux 嵌入技术
  Linux设备驱动程序
  Linux 集群技术
  LINUX平台数据库
  系统和网络安全
  CPU 与 编译器
  系统计算研究所专栏
  Linux下的GUI软件开发
  C/C++编程版
  PHP 技 术
  Java&jsp技术
  Shell编程技术
  Perl 编 程
  Python 编 程
  XML/Web Service 技术
  永远的Unix
  FreeBSD世界
   
求助:用cgi实现动态监测数据
求助:用cgi实现动态监测数据 - avirl [2005-01-22 13:42 | 1,459 byte(s)]
 
Re: 求助:用cgi实现动态监测数据 - happyhg [2005-02-01 11:23 | 38 byte(s)]
 
Re: 求助:用cgi实现动态监测数据 - bbwolf [2005-01-22 19:57 | 64 byte(s)]
 
Re: 求助:用cgi实现动态监测数据 - tclwp [2005-01-22 16:45 | 1,653 byte(s)]
 
Re: 求助:用cgi实现动态监测数据 - avirl [2005-01-26 11:45 | 738 byte(s)]
 
Re: 求助:用cgi实现动态监测数据 - bbwolf [2005-01-26 13:52 | 493 byte(s)]
 
Re: 求助:用cgi实现动态监测数据 - avirl [2005-01-26 19:08 | 489 byte(s)]
 
Re: 求助:用cgi实现动态监测数据 - bbwolf [2005-01-26 19:25 | 300 byte(s)]
 
Re: 求助:用cgi实现动态监测数据 - avirl [2005-01-26 20:21 | 1,037 byte(s)]
 
Re: 求助:用cgi实现动态监测数据 - bbwolf [2005-01-27 08:37 | 307 byte(s)]
 
Re: 求助:用cgi实现动态监测数据 - teawater [2005-01-22 14:38 | 61 byte(s)]
 
Subject: 求助:用cgi实现动态监测数据
Author: avirl    Posted: 2005-01-22 13:42    Length: 1,459 byte(s)
[Original] [Print] [Top]
用c实现,在web服务器中有不断更新的数据文件value.txt,想通过cgi把value.txt中的倒数第二项数据读出,动态显示在网页上,希望的网页结果是:

value1 value2
× ×

——————其中× ×表示动态读出的数据, 希望在网页的固定位置改变这两个数据即可,即是覆盖显示

我没有做过网页,目前只会写出:

int main(int argc, char *argv[])
{
int i;
int value[2];
FILE * fp;

fp=fopen("value.txt","r");
if(fp==NULL)
{
printf("Can't open the file for read. ");
}

printf("content-type:text/html ");
printf("<html><head></head><body>");
printf("<h2>value1 value2</h2> ");
while(1) ---------------注意这个循环, 只能不断的换行显示数据,一会网页就满了,所以希望在固定的位置覆盖显示
{
fseek(fp,-4L,2);
for(i=0;i<2;i++)
{
fscanf(fp,"d",&value[i]);
}
printf("%4d %4d",value[0],value[1]);
}
close(fp);
printf("</body></html>");
return(0);
}
[Original] [Print] [Top]
Subject: Re: 求助:用cgi实现动态监测数据
Author: teawater    Posted: 2005-01-22 14:38    Length: 61 byte(s)
[Original] [Print] [Top]
不能这么作 建议你每次显示当前值
HTML里面用下自动刷新
----
读了这么多年的书 还是觉得幼儿园好混
[Original] [Print] [Top]
Subject: Re: 求助:用cgi实现动态监测数据
Author: tclwp    Posted: 2005-01-22 16:45    Length: 1,653 byte(s)
[Original] [Print] [Top]
首先,你需要做一个html文件的模板(用来显示你所需要的数据),不过模板并不存放即时的数据,只是在显示
value1 value2的html语句中将value1 value2的值用[%value1] 、[%value2] 代替,
然后写一个C程序处理该模板,该程序读入模板文件,再读取value.txt中所需要的数据更新该2 个待填的地方(在内存中替换),然后将生成的完全html文件写入磁盘中(假设写入文件名为example.shtml)。

再建立一个带iframe的html文件home-page,内容如下:
<HTML>
<head>
<title>home-page</title>

</head>
</BODY>
<IFRAME frameBorder=0 height=330 src="path - to - example.shtml"
width=420 scrolling=auto></IFRAME>

</BODY>
</HTML>

其中path - to - example.shtml是你的example.shtml的URL
注意在example.shtml中的head部分加入
<meta http-equiv="refresh" content="1">
令被嵌入home-page中的一小块数据显示区(example.shtml页面)能每隔1秒刷新一次,当然时间间隔你可以自己定。更要注意的是如果你是在做大型站点的频繁被访问的页面时不要采取自动刷新, 否则会给server带来额外的压力
现在,CGI不断根据新数据更新生成example.shtml ,而home-page.html中的数据区不断刷新,就达到要求了,之所以把example.shtml嵌入home-page.html ,是考虑到在大型管理界面中就一页就显示一点东西不太好,可以同时显示许多要监视的数据 ,当然,可以用libgif 根据数据和时间生成数据变化观测图 ,更加直观。
楼主是什么单位的? 可以的话请用站内信件告诉我
[Original] [Print] [Top]
Subject: Re: 求助:用cgi实现动态监测数据
Author: bbwolf    Posted: 2005-01-22 19:57    Length: 64 byte(s)
[Original] [Print] [Top]
楼上说的对,或者shtml也可以的。
建议你找些cgi的书来看。
[Original] [Print] [Top]
Subject: Re: 求助:用cgi实现动态监测数据
Author: avirl    Posted: 2005-01-26 11:45    Length: 738 byte(s)
[Original] [Print] [Top]
按照tclwp的意见,经过这两天的尝试,基本显示出来了,只是访问web中的iframe时,iframe中嵌入的example.shtml会间隔地消失,重新链接,example.shtml又出现,如此反复。数据是相应变化的。我的理解是:
1.处理的c程序似乎与cgi无关,程序只是读入exampletemplate.shtml,根据动态监测的数据不断改写其中的[%value],然后写入到文件example.shtml,然后iframe调用example.shtml。也就是说example.shtml在不断地被打开被改写,同时被iframe调用。
2.出现间隔消失的现象似乎是example.shtml正在被程序处理,比如打开之后还未关闭,这之间虽然持续时间很短,但是总会导致iframe无法访问example.shtml的情况
3.还有,shtml与html有什么区别哪,为什么是example.shtml而不是example.html,
不知道我理解得对不对,应该怎样解决出现间隔消失的现象哪? 各位有经验吗
[Original] [Print] [Top]
Subject: Re: 求助:用cgi实现动态监测数据
Author: bbwolf    Posted: 2005-01-26 13:52    Length: 493 byte(s)
[Original] [Print] [Top]
1,2条没看懂,先给老兄解释第3条。
html和shtml的区别是shtml可以内嵌cgi程序。比如一个基数器这样调用<img> http://www.linuxforum.net/counter.cgi </img>,它会把这个cgi返回的值嵌入到这个shtml网页中,当然,这里使用的是图片。具体的,还要在http上进行设置,比如你用apache,里面好象有一项就是哪种扩展名是可以内嵌cgi的。不过现在使用shtml的好象少了,不知是不是安全原因。
[Original] [Print] [Top]
Subject: Re: 求助:用cgi实现动态监测数据
Author: avirl    Posted: 2005-01-26 19:08    Length: 489 byte(s)
[Original] [Print] [Top]
谢谢bbwolf。
迷惑了,bbwolf解释只有shtml可以内嵌cgi程序,可是大量的html不也用了cgi吗?看来我对tclwp
的帖子没有理解,
“value1 value2的html语句中将value1 value2的值用[%value1] 、[%value2] 代替,
然后写一个C程序处理该模板,该程序读入模板文件,再读取value.txt中所需要的数据更新该2 个待填的地方(在内存中替换),然后将生成的完全html文件写入磁盘中(假设写入文件名为example.shtml)。 ”
看似就是及时更新example.shtml文件阿..
怎么与cgi关联哪
[Original] [Print] [Top]
Subject: Re: 求助:用cgi实现动态监测数据
Author: bbwolf    Posted: 2005-01-26 19:25    Length: 300 byte(s)
[Original] [Print] [Top]
应该这样运行<! --#exec cgi = "/cgi-bin/counter.pl"-->
把这个嵌在shtml文件中。
apache应该有这句:AddHandler server-parsed .shtml。
这种技术应该是:SSI(server side include)
我有4,5年没写过cgi了,不过理论上应该不会错,你google一下ssi, shtml。
[Original] [Print] [Top]
Subject: Re: 求助:用cgi实现动态监测数据
Author: avirl    Posted: 2005-01-26 20:21    Length: 1,037 byte(s)
[Original] [Print] [Top]
to bbwolf,
谢谢及时回复。我的目标系统是uclinux,先没有说清楚。uclinux应该不支持perl,在uclinux实现动态网页的介绍说用c语言的cgi实现。你的回答是针对linux的,按照你的提示,我的主页应该做成shtml(只是把后缀改一下?),如:index.shtml
<HTML>
<head>
<title>嵌入式远程数据监控系统</title>

</head>
<center>
<H1>嵌入式远程数据监控系统</H1>
<H2>自控实验室</H2>
<HR>
</center>
<BODY>

<IFRAME frameBorder=0 height=330 src="cgi-bin/example.html"
width=500 scrolling=auto></IFRAME>
<Right>

</BODY>
</HTML>

在其中嵌入iframe,调用cgi,其中example.html被cgi程序不断修改。
我先试试吧
[Original] [Print] [Top]
Subject: Re: 求助:用cgi实现动态监测数据
Author: bbwolf    Posted: 2005-01-27 08:37    Length: 307 byte(s)
[Original] [Print] [Top]
个人意见,如果是嵌入式,还是用c直接写吧,不要用ssi了,而且用了也未必支持。所谓ssi,是一种技术,任何语言编写的程序都可以通过ssi这种方式调用。但需要服务器端支持。
你在普通html(模版)文件里做个标记,然后你的cgi把这个标记动态修改了就可以了。这样做其实和直接print html语句是一样的,但是便于编程和维护。
[Original] [Print] [Top]
Subject: Re: 求助:用cgi实现动态监测数据
Author: happyhg    Posted: 2005-02-01 11:23    Length: 38 byte(s)
[Original] [Print] [Top]
不知avirl用的什么webserver?
[Original] [Print] [Top]
« Previous thread
为什么CVS服务器不能启动?
C/C++编程版
39
Next thread »
请教:X Server编程-有没有缩放图像或者字体的功能
     

Copyright © 2007 UNIX Resources Network, All Rights Reserved.      About URN | Privacy & Legal | Help | Contact us
备案序号: 京ICP备05006143    webmaster: webmaster@unixresources.net
This page created on 2008-07-17 03:53:12, cost 0.05787205696106 ms.