|
|
华南师范大学 刘冬杰
[摘要] 本文介绍了一种基于Windows NT的电子公告牌软件的原理及其实现方法。在 这种电子公告牌软件的设计中,数据传输主要是采用CGI和WWW的接口技术实现的。 而电子公告牌软件的编辑主要是采用超文本编辑语言(HTML)实现的。采用这种方式 实现的电子公告牌软件与传统的Telnet方式实现的电子公告牌软件相比,具有快 速、用户使用方便、人机界面友好等优点。 一、引言: 随着Internet应用的日益普及,越来越多的高校建立了自己的电子公告牌系统 (BBS)。BBS具有信件交流、文件传输、信息交流及资料查询等功能。能够快速地 进行信息交流。对于广大BBS使用者而言,BBS具有价廉、无语言障碍、快速、分开 等特点。因而深受广大学生与网络爱好着的欢迎。但是,传统的BBS一般是基于 Telnet的字符界面,在使用时用户通过Telnet登录到BBS服务器,但在远程传输时, 由于使用TCP/IP按报文分组传输,每个包传输时延很大,导致每个包只传输一个有 效字符的Telnet使用效率非常低。在网络速度慢的环境下使用不便,特别是在文章 比较长时不方便浏览和发表。 基于这个原因,我们利用WWW和CGI的接口,开发了一套基于Window NT 的电子公告 牌软件。使用此电子公告牌软件,用户可以通过浏览器来阅读BBS系统中的文章,也 可以在BBS系统中发表文章。 二、CGI与WWW的接口技术: 1.1利用CGI程序产生HTML文档 当浏览器请求的一个UTL的内容为CGI程序时,Website执行该CGI 程序。CGI程序首先向Website回送一个数据头。Website根据这个数据头格式决定如 何处理CGI程序产生的数据。例如下面的程序: cgi->writeHTMLHeader("<html>\n"); cgi->writeHTMLBody("<head><title>电子公告牌软件</head></title>\n"); cgi->writeHTMLBody("<body>\n"); cgi->writeHTMLBody("<h2>电子公告牌栏目</h2>\n"); cgi->writeHTMLBody("</body>\n"); cgi->writeHTMLFooter("</html>"); Website把下面的内容返回给浏览器。这段程序将向浏览器返回下面的HTML页: <html> <head><title>电子公告牌软件</title></head> <body> <h2>电子公告牌栏目</h2> </html> 在浏览器中显示标题为"电子公告牌软件"的信息: 电子公告牌栏目。 1.2 利用Form向CGI传送数据: CGI程序的触发是从客户用鼠标点入HTML文档的特定标记开始的。客户程序根据这些 标记的类型向服务器程序发出"POST(特定串)"的命令,服务器把这些串分解成程序 名、环境变量及参数,形成对CGI程序的调用。 CGI程序调用的HTML的FORM标记。一个典型的BBS用户发布消息的FORM格式如下: <TITLE>Form for Publish Article</TITLE> <H2>发表文章</H2> <HR> <FORM METHOD=POST ACTION="/cgi-win/bbs/book/cgibase41.exe"> <pre>主题: <INPUT TYPE="text" NAME=subject MAXLENGTH="32"> 姓名: <INPUT TYPE="text" NAME=realname MAXLENGTH="8"> EMail地址: <INPUT TYPE="text" NAME=emailaddr MAXLENGTH="32"><p> <br>内容:<p> <TEXTAREA wrap=soft TYPE="text" NAME=content ROWS=5 COLS=50></TEXTAREA> <P> </pre> <INPUT type="submit" value=发送> <INPUT type="reset" value=取消> </FORM> 在FORM标记中,type="text"的Input表示请求输入一个字符串,type="submit"的 input表示一个按纽。浏览器在用户输入相应的主题、姓名、Email地址及内容后, 按了type="submit"的发送按纽后,向服务器发出类示 如下所示的命令: POST/cgi-win/bbs/book/cgibase41.exe 其中cgibase41.exe就是用C/C++编写的CGI程序编译后形成的可执行文件。BBS的用 户在发布消息时,通过服务器启动CGI程序后,CGI通过标准输入(Standrad Input) 获得用户输入数据。在Form中使用Method=POST的设置。可将用户输入数据传递给相 应CGI程序的标准输入设备(Stdin)。编写的CGI程序负责把由标准输入读入的用户数 据串分解为相应的"变量名/赋值"。同时编写的CGI程序还应具有把用户输入的数据 进行分类、使用CGI处理后返回的动态 HTML页面中有用户发表信息的信息目录、同 时还要建立起信息目录和具体信息内容的动态链结等功能。CGI的这些功能都是由编 写CGI程序的C/C++实现的。 三、用户查询BBS内的消息: 用户在不向BBS发送消息。而仅仅查询BBS上的消息时,主要的工作方式是 采用World Wide Web(简称WWW)信息检索服务。采用的WWW是一个基于Internet的全 球链接的分布式的、动态的、多平台的交互式图形超文本信息系统。 1. 分布式的: 通过Internet,WWW用户可以按照某种协议访问存储在世界各地计算机系统的信息。 2. 动态的: 因为信息是分布在各地的站点上的,用户看到的总是最新的资料。 3.多平台: 用户可能使用Windows、Unix、XWindow、Mac、VMS等。当前的主要浏览器都支持各 种操作平台。 4.超文本的: 与传统的Online help等检索不同。在Web中用户可以随意从一个页面(page)跳到另 一页面。而不一定要沿"原路"返回到上一级主菜单后再查找新的内容。非常方便简 洁。如果说传统的检索方式树状呈线性的话。那么Web则是名符其实的网状结构。它 所依赖的技术为超文本链接(hyperlink)。 建立一套供检索的消息机制,它是用HTML语言实现。HTML是WWW的专用表达语言,是 SGML(标准通用标示语言__Standard Generalized Markup Language)的一个简化版 本。HTML规定信息陈列格式,指定需要显示的图片。指定超文本链接对象。主要包 括以下几个组成部分。 1. 一般结构: <HTML> <HEAD> <TITLE>__________________</TITLE> </HEAD> <Body> Text for test </Body> </HTML> 2. 定义导航 < A HREF= ""referenced filename" "> </A> HREF 是Hyper Text Reference 的编写。用来指定导航点被选取后应转入的相应文 件。该文件是指定本机器上,也可在Internet网上任意可访问到的地方。两个标签 之间的内容作为导航点。由浏览器作特殊处理。 3. 加载图片标签 <IMG SRC=""sourcefile" ALIGN=method ALT="text"> SRC指定图片文件。ALIGN指定图片对齐方式。(Top、MIDDLE、BOTTOM),ALT指定在 不能显示图像的浏览器中显示替代文本内容。 4. 接受用户输入的FORMS <FORMS METHOD=method ACTION="action"></FORM> 可在此指定对用户输入信息处理方式。在FORM中可加入文本框、收音机按钮、复选 框弹出式菜单。METHOD有GET和POST方式。GET将输入信息转至ACTION指定的程序处 理。POST将信息发往ACTION指定的文件存储,留待后用。 <INPUT TYPE="TEXT" Name="Name" size="30">定义了一个文本框。 <INPUT TYPE="Submit"> 接受输入信息按钮。 <INPIT TYPE="reset"> 重置按钮,按后输入作废,各值回归缺省值。 5 结束语 BBS在Internet上的使用日趋广泛。为Internet用户之间的交流提供了一个很好的环 境。开发的公告版软件BBS把BBS与WWW相结合的初步尝试,它建立在BBS的基础上, 溶入了Web带来的便利性。提高了通信效率,节省了BBS用户的时间。同时用Windows 界面改善了可用性和易学性,与基于Telnet的BBS系统相比,具有一定的优越性。 参考文献: 1. M Horton,R Adams, Standard for Interchange of USNET message. RFC 1036,12/01/1987 2. HTML and CGI unleashed, Sams publishing 1995 |