网络程序范文10篇

时间:2023-04-07 21:00:11

网络程序

网络程序范文篇1

一、计算机网络系统安全对于社会的现实意义

国际标准化委员会对计算机网络系统安全是这样进行定义的,“计算机网络系统是为数据处理系统和采取的技术管理提供安全保护,保护计算机硬件、软件、数据等不因偶然的失误或者是恶意的原因而遭到破坏、更改、显露”。我们可以很通俗地说,网络系统安全主要是用来保护网络信息系统,使网络信息系统没有存在危险、没有受到威胁以及不出现恶性事故。从技术角度上来说,网络信息安全主要表现在它对于整个网络运行系统的保密性、完整性、真实性、可靠性、可用性和不可抵赖性等多方面。因为如果网络保护不当将直接影响到对于数据的完整性和可用性等问题,还会为企业带来不可估量的经济上的损失。由此可见,保护计算机系统安全对于整个社会来说是极为重要的。我们不仅应从技术研究和安全管理方面入手来解决问题,同时还应从网络运营方面加大控制,达到双管齐下,真正营造一个可靠、健康、安全的网络运营环境,来确保网络系统的畅通和高效。

二、影响计算机网络系统不安全的因素

(一)计算机软件系统上存在缺失

每一个计算机系统都是由很多网络软件构成的,所以形式上纷繁复杂。而每一个操作系统或者是网络软件的出现都不可能是无缺陷和漏洞的,这样就会为计算机在运行时留下安全隐患。而当用户一旦打开计算机连接到网络时,就有可能会出现网络运行错误或者是瘫痪的不良状态。

(二)不良自然因素的影响

计算机是单独存在的智能机器,它会受到温度、湿度、雷击以及振动等多种自然因素的不良影响。而就目前现状来说很多计算机房并未对这些问题做出及时补救的措施,所以造成计算机房对于抵抗意外事故和自然灾害的能力较差。从而导致计算机设备损坏、数据不完整或是完全丢失的情况较为常见,这样就会威胁整个计算机安全系统。

(三)工作人员对网络维护不够

计算机出现问题是常有的,例如死机、系统错误、病毒威胁等状况。虽然常常出现不良状况,但是仍旧保持着继续工作的状态,也没有造成任何损失,所以网络维护人员对其不重视,不会做出及时的处理,等到计算机真正出现瘫痪不能开机运行时他们才会真正的进行解决。

(四)电脑系统存在病毒威胁

调查发现,现在威胁电脑系统安全的头号大敌就是电脑病毒。电脑病毒是由一些编制人员在计算机程序中恶意插入的能够破坏计算机功能或者是数据完整性的一种破坏行为,从而影响整个计算机的软件不能够正常进行工作,并且通过此操作能够自我复制一组计算机指令或者是程序代码,对于企业来说危害性最大。计算机病毒具有传染性和隐藏性破坏性等多种危害特点,因此对于计算机病毒的防治工作意义深远。

(五)电脑黑客的入侵

现在由于电脑黑客的入侵,引起计算机故障的问题越来越常见。黑客原来是指热心于计算机技术而且水平较高的电脑方面的专家或是电脑程序相关的设计人员,但是现在黑客是指一些人利用电脑网络进行搞破坏、窃取文件材料或是恶作剧。电脑黑客是利用在电脑系统中存在的安全漏洞入手非法侵入他人的计算机系统,从而达到窃取资料或是进行损毁的破坏性目的,危害性极为严重。

(六)计算机用户的安全意识较差

很多单位的工作人员利用单位电脑进入不正规网站,由于选择不慎就会为电脑带来隐藏性的病毒。有些员工还存在登录个人账号进行网络共享、下载视频等多种活动。在下载过程中带出病毒是常见的,从而把病毒带到公司电脑中,这样不但使公司电脑无法正常运行,一旦遭遇黑客还会造成公司财产上的损失。

三、保证计算机安全运行的策略

强化网络安全的目的是为了对企业以及个人的信息进行保护。所以面对计算机系统安全中出现的不良威胁和破坏性影响,我们应该制定出切实可行的管理策略,来保护整个网络运行的安全性。提升运行水平才能够保证信息化社会的健康发展。

(一)完善安全管理制度上存在的漏洞,加强技术防护现在普遍存在着管理人员素质较低的情况,对用户的安全意识淡薄,对内部网络缺乏审计,对其他审计信息不够重视等不良行为。作为运营管理者首先要建立一套系统完整的安全管理制度,加强系统维护人员技术上的素养以及用户的自身修养问题。对各类数据要及时进行备份,要养成良好的备份习惯,这样一旦计算机系统出现意外故障才能保证原有资源不受损失。对重要职能部门的相关信息进行及时的系统查杀,防止病毒入侵。作为计算机的管理控制层,我们要对网络访问、网络权限等进行科学的掌控,对用户负责。

(二)运用网络防火墙技术为了保证计算机网络有一个良好的运行环境,可以使用防火墙设备,从而加强对网络访问的控制。防火墙可以设置在不同网络安全领域,它不但会防止外来网络用户以非法手段进入到网络的内部系统,还可以自动忽略不安全用户和非法用户的进入情况,同时限定用户访问有问题的特殊站点,从而来保证整个计算机系统的安全。防火墙价格比较便宜,容易安装,而且可以直接在线升级,不但减轻了购买者的经济负担还减小了操作上存在的难度。

(三)提升病毒检测、杀毒技术据调查得出,病毒危害在计算机运行中是最为常见的。所以计算机必须安装行之有效的杀毒软件,这样才能通过对计算机存在病毒进行分析,从而有根据的进行杀毒。现在的杀毒软件拥有自动更新的特点,对计算机的日常安全进行维护,统一部署安全策略,这样整个网络才会有健康的发展态势。

(四)对入网访问者进行控制和限定访问控制是保证整个计算机运行系统安全的主要方法,它主要是防止用户的非法使用或是进行非常规性操作。在保证网络系统运行安全的同时保证资源不受损害。入网访问时大致可分为3步:1、对用户名的识别2、对口令的验证3、对用户身份的验证。只有用户名验证合法,用户才能输入口令,否则用户将无法登陆网络,对用户的口令进行加密,最后用户携带相关证明(磁条或智能卡)才能使用网络。

(五)加强用户的自觉意识用户要及时为计算机系统打补丁这样才会及时检查出在电脑系统中存在的漏洞,不要去浏览不安全或者是已经被限定的网站。如果需要下载软件,要尽量在官方网站进行下载,在安装软件之前一定要进行病毒查,因为在安装软件前进行病毒查杀是一个非常好的习惯。任何文件都不要放在系统盘中,因为文件可能会存在隐藏性病毒,从而引起系统出现错误。重要的文件要及时做好备份,防止丢失时出现损失。在电脑中出现的莫名文件不要试图去打开它,因为可能会存在病毒威胁。病毒的发展是不会停止的,所以用户要及时的更新病毒库。不要一起安装很多杀毒软件,有些用户由于不了解计算机,为了安全运行会同时安装金山毒霸、360安全卫士等多个杀毒软件。有些杀毒软件之间也可能会发生冲突,而且还占用了很多的内存。作为用户只有明白这些才会有一个好的网络运行环境。

(六)加强对网络技术的培训在不断发展的信息社会里,网络技术不断的在更新换代。所以作为一个优秀的网络管理人员必须不断学习新的网络知识,充分掌握新的网络产品的功能,要真正会使用,熟知电脑的构造、操作系统的功能以及常使用的病毒软件,以及电脑常出现问题的解决措施等,这样才能更好地去进行管理网络。

网络程序范文篇2

关键词JAVA,网络,SOCKET,APPLET

网络上的系统结构多为客户/服务器模式,服务器端负责数据和图像等的存储、维护、管理以及传递,客户端则负责人机界面的操作、送出需求及显示收回的数据。

下面介绍一下如何使用JAVA来进行网络编程:

1)由于客户端通过IE同服务器建立联系,所以客户端使用Applet,服务器端使用Application;

2)服务器应设置成多线程,应答多个客户的请求;

3)两端通信使用SOCKET机制。

1Java中输入/输出流概念:

过滤流DataInputStream和DataOutputStream除了分别作为FilterInputStream和FilterOutputStream的子类外,还分别实现了接口DataInput和DataOutput。接口DataInput中定义的方法主要包括从流中读取基本类型的数据、读取一行数据、或者读取指定长度的字节数,如readBoolean()readInt()、readLine()、readFully()等。接口DataOutput中定义的方法主要是向流中写入基本类型的数据或者写入一定长度的字节数组,如writeChar()、writeDouble()DataInputStream可以从所连接的输入流中读取与机器无关的基本类型数据,用以实现一种独立于具体平台的输入方式;DataInputStream可以向所连接的输出流写入基本类型的数据。

2Socket机制

Socket是面向客户/服务器模型设计的,网络上的两个程序通过一个双向的通讯连接实现数据的交换,这个双向链路的一端称为一个Socket。Socket通常用来实现客户方和服务方的连接。客户程序可以向Socket写请求,服务器将处理此请求,然后通过Socket将结果返回给用户。

Socket通信机制提供了两种通讯方式:有联接和无联接方式,分别面向不同的应用需求。使用有联接方式时,通信链路提供了可靠的,全双工的字节流服务。在该方式下,通信双方必须创建一个联接过程并建立一条通讯链路,以后的网络通信操作完全在这一对进程之间进行,通信完毕关闭此联接过程。使用无联接方式时其系统开销比无联接方式小,但通信链路提供了不可靠的数据报服务,不能保证信源所传输的数据一定能够到达信宿。在该方式下,通信双方不必创建一个联接过程和建立一条通讯链路,网络通信操作在不同的主机和进程之间转发进行。

3Java语言

Java语言的优点主要表现在:简单、面向对象、多线程、分布性、体系结构中立、安全性等方面。

(1)简单性

Java与C++语言非常相近,但Java比C++简单,它抛弃了C++中的一些不是绝对必要的功能,如头文件、预处理文件、指针、结构、运算符重载、多重继承以及自动强迫同型。Java实现了自动的垃圾收集,简化了内存管理的工作。这使程序设计更加简便,同时减少了出错的可能。

(2)面向对象

Java提供了简单的类机制和动态的构架模型。对象中封装了它的状态变量和方法,很好地实现了模块化和信息隐藏;而类则提供了一类对象的原型,通过继承和重载机制,子类可以使用或重新定义父类或超类所提供的方法,从而既实现了代码的复用,又提供了一种动态的解决方案。

Java是一种完全面向对象的程序设计语言,它除了数组、布尔和字符三个基本数据类型外的其它类都是对象,它不再支持全局变量。在Java中,如果不创建新类就无法创建程序,Java程序在运行时必须先创建一个类的实例,然后才能提交运行。

Java同样支持继承特性,Java的类可以从其它类中继承行为,但Java只支持类的单重继承,即每个类只能从一个类中继承。

Java支持界面,界面允许程序员定义方法但又不立即实现,一个类可以实现多个界面,利用界面可以得到多重继承的许多优点而又没有多重继承的问题。

(3)多线程

多线程使应用程序可以同时进行不同的操作,处理不同的事件。在多线程机制中,不同的线程处理不同的任务,他们之间互不干涉,不会由于一处等待影响其他部分,这样容易实现网络上的实时交互操作。

Java程序可以有多个执行线程,如可以让一个线程进行复杂的计算,而让另一个线程与用户进行交互,这样用户可以在不中断计算线程的前提下与系统进行交互。多线程保证了较高的执行效率。

(4)分布性

Java是面向网络的语言。通过它提供的类库可以处理TCP/IP协议,用户可以通过URL地址在网络上很方便的访问其他对象。

(5)体系结构中立

Java是一种网络语言,为使Java程序能在网络的任何地方运行,Java解释器生成与体系结构无关的字节码结构的文件格式。Java为了做到结构中立,除生成机器无关的字节码外,还制定了完全统一的语言文本,如Java的基本数据类型不会随目标机的变化而变化,一个整型总是32位,一个长整型总是64位。

为了使Java的应用程序能不依赖于具体的系统,Java语言环境还提供了用于访问底层操作系统功能的类组成的包,当程序使用这些包时,可以确保它能运行在各种支持Java的平台上。

java.lang:一般的语言包。其中包括用于字符串处理、多线程、异常处理和数字函数等的类,该包是实现Java程序运行平台的基本包

java.util:实用工具包。其中包括哈希表、堆栈、时间和日期等

java.io:基于流模型的输入/输出包。该包用统一的流模型实现了各种格式的输入/输出,包括文件系统、网络和设备的输入/输出等

:网络包。该包支持TCP/IP协议,其中提供了socket、URL和WWW的编程接口

java.awt:抽象窗口工具集。其中实现了可以跨平台的图形用户界面组件,包括窗口、菜单、滚动条和对话框等

java.applet:支持applet程序设计的基本包

(6)安全性

用于网络、分布环境下的Java必须要防止病毒的入侵,Java不支持指针,一切对内存的访问都必须通过对象的实例变量来实现,这样就防止了程序员使用欺骗手段访问对象的私有成员,同时也避免了指针操作中容易产生的错误。

4JAVA工具

(1)JDK

1)Java编译器

Java编译器将Java源代码文件编译成可执行的Java字节码。Java源代码文件的扩展名为.java,Java编译器把这种扩展名的文件编译成扩展名为.class的文件。源文件中的每个类在编译后都将产生一个class文件,这意味一个Java源代码文件可能编译生成多个class文件。

2)Java解释器

Java解释器对编译生成的字节码格式的可执行程序的运行提供支持,它是运行非图形Java程序的命令行工具。

3)Appletviewer

它是JavaApplet的简单测试工具,可使用它来测试JavaApplet程序,而不需要WWW浏览器的支持。

(2)VisualJ++

VisualJ++集成了可视化界面设计、交互式调试、代码编辑、联机帮助信息和介绍如何快速掌握该开发环境的实用向导等多项功能,同时具有能充分利用ActiveX和COM新技术的优势。利用VisualJ++可创建交互性很强的Internet应用程序,是难得的Java开发系统。

5客户机/服务器通信的实现:

(1)Application同Applet的通信

两端通过Socket机制进行连接:

1)客户端的编程流程:

?打开Socket,新建一个套接字;

?为套接字建立一个输入和输出流;

?根据服务器协议从套接字读入或向套接字写入;

?清除套接字和输入/输出流;

2)服务器端的编程流程:

?打开ServerSocket,创建一个服务器型套接字和一个普通套接字,服务器型套接字在指定端口为客户端请求的Socket服务;

?使用ServerSocket类的accept()方法使服务器型套接字处于监听状态并把监听结果返回给普通套接字;

?为该普通套接字创建输入和输出流;

?从输入和输出流中读入或写入字节流,进行相应的处理,并将结果返回给客户端;

?在客户端和服务器工作结束后关闭所有的对象,如服务器型的套接字,普通套接字,输入和输出流。

正是由于Java系统具有基于Socket的灵活通信机制,因而其应用程序能自由地打开和访问网络上的对象,就象在本地文件系统中一样。

(2)Applet之间的通信:

Applet之间的通信使用AppletContext类的getApplet()方法。

<appletcode=applet1.classwidth=200height=200name=first>

只要在程序中加入

Appletoneapplet=getAppletContext().getApplet(“first”);便可使用name为first的Applet中的方法了。

在该课题中大量使用了该种通信方法,因为专门同服务器端通信的Applet中包含接收信息方法和发送信息方法,所有客户端的Applet都要使用负责通信的Applet中的方法,所以客户端的Applet同负责通信的Applet必须进行通信。

6程序

//服务器端程序S.java负责与客户端通信

importjava.io.*;

.*;

importjava.lang.*;

importT2;

classThreadEchoHandlerextendsThread//创建线程

{

T2theT2=newT2();

Socketincoming;

intcounter;

ThreadEchoHandler(Socketi,intc)

{incoming=i;

counter=c;}

publicvoidrun()

{

try

{

DataInputStreamin=newDataInputStream(incoming.getInputStream());

DataOutputStreamout=newDataOutputStream(incoming.getOutputStream());

System.out.println("hello");

booleandone=false;

while(!done)

{Stringaa="";

Stringstr=in.readUTF();//从客户端得到字符串

//在此加入各自的服务程序

System.out.println(str);

theT2.pass(str);//解码

theT2.tongji();//修改监控库中的信息

aa=theT2.guan();//操纵数据库

System.out.println("stringzis:"+aa);

if(pareTo("null")!=0)

//若是查询数据库,返回查询后的结果

{//若不是查询数据库,不向客户端输出信息

out.writeUTF(aa);

out.flush();}

}//while

incoming.close();//线程关闭

}//try

catch(IOExceptione)

{System.out.println(e);}

}//endrun

}

//----------------------------------------

classS

{

publicstaticvoidmain(String[]args)

{

inti=1;

try

{

ServerSockets=newServerSocket(1111);

for(;;)

{

Socketincoming=s.accept();

System.out.println("connect:"+i);

newThreadEchoHandler(incoming,i).start();

i++;

}

}

catch(Exceptione)

{System.out.println(e);}

}

}

//客户端通信小应用程序Echo.java

importjava.io.*;

.*;

importjava.awt.*;

importjava.applet.*;

publicclassEchoextendsApplet

{

TextAreata;

SocketechoSocket;

DataOutputStreamos;

DataInputStreamis;

StringLine;

publicvoidinit()

{

setBackground(Color.white);

ta=newTextArea(5,80);

ta.setEditable(false);

add(ta);

try

{echoSocket=newSocket("10.102.4.41",1111);}//与服务器建立连接

catch(IOExceptione)

{System.out.println("error");}

}

publicvoidst(Stringstri)//发送字符串的方法

{

try

{DataOutputStreamos=newDataOutputStream(echoSocket.getOutputStream());

DataInputStreamis=newDataInputStream(echoSocket.getInputStream());

os.writeUTF(""+stri);//向服务器输送string

os.flush();

}

catch(IOExceptione)

{System.out.println("error:"+e);}

}

publicStringst1()//接收字符串的方法

{

StringLine="";

try

{DataOutputStreamos=newDataOutputStream(echoSocket.getOutputStream());

DataInputStreamis=newDataInputStream(echoSocket.getInputStream());

Line=is.readUTF();//从服务器读来的信息

ta.appendText(""+Line);//在文本域中输出信息

}

catch(IOExceptione)

{System.out.println("error:"+e);}

returnLine;

}

}

7程序调试心得:

1)在建立Socket连接时,两端的端口号必须设为一致,否则建立不了连接。服务器端必须有主机IP地址或主机名参数。

2)连接建立好之后应确定输入和输出流。起初程序中用的是DataInputStream和PrintStream,结果只能传输英文,传输中文时产生乱码,将PrintStream改为DataOutputStream,使用readUTF()和writeUTF()方法后,中文传输问题得到解决。

3)如果一个使用某端口的程序没有关闭,另一个程序就不能使用这个端口。

4)开始进行通信的程序均为Application,因不符合客户机/服务器机制,应将客户端的Application改为Applet。其转化的主要步骤如下:

?创建一个包含APPLET标签的HTML文件;

?去掉应用程序中的main()方法;

?类名应继承Applet类,而不是Frame类,并在程序开头加入

importjava.applet.*;语句;

?用init()方法代替Application程序中的构造方法,当浏览器创建Applet类对象的时候,它自动执行init()方法;

?如Application中缺省使用了BorderLayout布局管理器,应在Applet的init()方法中重新设定;

?如果Application中有setTitle()方法,必须将其去掉,如Application中使用了菜单,在Applet中用按钮来替换。

5)懂得了在一程序中如何引用自定义的类中的方法和变量,在程序开头加入import类名;在程序中加入类名实例=new类名();然后使用

实例.方法(),实例.变量即可。

参考文献:

[1]廖雷等,Java程序设计教程,中国电力出版社,2003

网络程序范文篇3

DSP芯片是专门为实现各种数字信号处理算法而设计的、具有特殊结构的微处理器,其卓越的性能、不断上升的性价比、日渐完善的开发方式使它的应用越来越广泛。将计算机网络技术引入以DSP为核心的嵌入式系统,使其成为数字化、网络化相结合,集通信、计算机和视听功能于一体的电子产品,必须大大提升DSP系统的应用价值和市场前景。将DSP技术与网络技术相结合,必须解决两个关键问题:一是实现DSP与网卡的硬件接口技术,二是基于DSP的网络通信程序设计。DSP与网卡的硬件接口技术参考文献[1]有比较详尽的论述,以下主要讨论基于DSP的网络通信程序设计。

1通信协议的制定

协议是用来管理通信的法规,是网络系统功能实现的基础。由于DSP可以实现对网卡的直接操作,对应于OSI网络模型,网卡包含了物理层和数据链路层的全部内容,因此,规定了数据链路层上数据帧封装格式,就可以为基于DSP的局域网络中任意站点之间的通信提供具体规范。因为以太网是当今最受欢迎的局域网之一,在以太网中,网卡用于实现802.3规程,其典型代表是Novell公司的NE2000和3COM公司的3C503等网卡,所以研究工作中的具体试验平台是以DSP为核心构成的以太局域网,主要用于语音的实时通信,所使用的网卡为Novell公司的NE2000网卡。NE2000网卡的基本组成请见参考文献[2],其核心器件是网络接口控制器(NIC)DP8390。该器件有三部分功能:第一是IEEE802.3MAC(媒体访问控制)子层协议逻辑,实现数据帧的封装和解封,CSMA/CA(带碰撞检测功能的载波侦听多址接入)协议以及CRC校验等功能;第二是寄存器堆,用户对NE2000网卡通信过程的控制主要通过对这些寄存器堆中各种命令寄存器编程实现;第三是对网卡上缓冲RAM的读写控制逻辑。DP8390发送和接收采用标准的IEEE802.3帧格式。IEEE802.3参考了以太网的协议和技术规范,但对数据包的基本结构进行了修改,主要是类型字段变成了长度字段。所以,以DSP为核心的局域网内通信数据包基本格式如图1所示。

DSP读出数据包和打包从目的地址开始。目的地址用来指明一个数据帧在网络中被传送的目的节点地址。NE2000支持3种目的地址:单地址、组地址及广播地址。单地址表示只有1个节点可以接收该帧信息;组地址表示最多可以有64个字节接收同一帧信息;而广播地址则表示它可以被同一网络中的所有节接收。源地址是发送帧节点的物理地址,它只能是单地址。目的地址和源地址指网卡的硬件地址,又称物理地址。

在源地址之后的2个字节表示该帧的数据长度,只表示数据部分的长度,由用户自己填入。数据字段由46~1500字节组成。大于1500字节的数据应分为多个帧来发送;小于46字节时,必须填充至46字节。原因有两个:一是保证从目的地址字段到帧校验字段长度为64字节的最短帧长,以便区分信道中的有效帧和无用信息;二是为了防止一个站发送短帧时,在第一个比特尚未到达总线的最远端时就完成帧发送,因而在可能发生碰撞时检测不到冲突信号。NE2000对接收到的从目的地址字段后小于64字节的帧均认为是“碎片”,并予以删除。在数据字段,根据系统的具体功能要求,用户可以预留出若干个字节以规定相应的协议,以便通信双方依据这些字节中包含的信息实现不同的功能。

2基于DSP的网络通信程序设计

如果基于网络操作系统,用户可以利用一些软件对网络操作系统的支持,很容易地编写出优秀的网络通信程序,但这些程序必须依附于网络操作系统。而在DSP环境下,必须深入了解网络接口控制器(NIC)的工作原理[2],通过对网络直接编程,实现局域网内任意站点之间的通信而完全抛开网络操作系统。

DSP对网卡的通信过程控制就是DSP对DP8390中各种寄存器进行编程控制,完成数据分组的正确发送和接收。DP8390的所有内部寄存器都是8位,映像到4个页面。每个页面有16个可供读写的寄存器地址(RA=00H~0fH)。页面的选择由命令寄存器CA控制。第0页寄存器用于收发过程,第1页寄存器主要用于DP8390的初始化,第2页寄存器则用于环路诊断。DSP对寄存器的操作是将寄存器作为DSP的端口设备,其实际物理端口地址(PPA)为网卡基本I/O端口地址(BIOA)与寄存器地址(RA)之和(即PPA=BIOA+RA)。应注意的是,PPA与寄存器间并不存在一一对应关系,对PPA的读操作与写操作并不一定是对同一寄存器进行的,这种情况在第0页尤其明显。用户数据分组在DSP和网卡交互是通过网卡的数据端口实现的,既可以用DMA方式也可以用PIO方式读入数据分组或将数据分组送至网卡RAM缓冲区。在本系统中,DSP采用DMA方式对网卡进行数据读写。网卡的数据端口地址(NDPA)为网卡基本I/O地址(BIOA)加偏移地址10H(即NDPA=BIOA+10H)。

网卡通信过程控制可分为网卡初始化、接收控制和发送控制。下面分别予以讨论。

2.1网卡初始化

网卡初始化的主要任务是设置所需的寄存器状态,确定发送和接收条件,并对网卡缓冲区RAM进行划分,建立接收和发送缓冲环。具体过程请参阅参考文献[2]。需要说明的是,每一块网卡被赋予一个物理地址,以便通信站点的标识。这个物理地址存在网卡的PROM(存储地址为0000~0005H)六个单元中,在网卡初始化时,通过远程DMA读入DSP内存中,并送入网卡物理地址寄存器。在一步的意义在于:一方面,如果能正确读出网卡的物理地址,则说明网卡硬件基本没有问题,网卡的上电复位和DSP对网卡的初始化顺利通过;另一方面,这个物理地址可以用于DSP网络系统中的点名、包的过滤丢弃等服务,也就是说,在链路层根据数据帧携带的源地址和目的地址确定数据报从哪里来,是否接收或丢弃。网卡初始化时另一个重要的工作就是接收缓冲环的设置,为了有效利用缓冲区,NIC将接收缓冲区RAM构成环形缓冲结构,如图2所示。

接收缓冲区RAM分成多个256字节的缓冲区,N个(N最大为256)这样的缓冲区通过指针控制链接成一条逻辑上的缓冲环。缓冲环的开始页面地址存入PSTART寄存器,环页面结束地址存入PSTOP寄存器。PSTART和PSTOP确定了接收缓冲环的大小和边界。为便于缓冲环读写操作,还需要2个指针:当前页面指针CURR和边界指针BNRY。CURR确定下一包放在何处,起着缓冲环写页面指针作用;BNRY指向未经DSP取走处理最早到达的数据包起始页面,新接收的数据包不可将其覆盖,起着缓冲环读页面指针的作用。也就是说,CURR可以告诉用户网卡接收的数据分组当前放到了什么位置,而BNRY则用于确定DSP读缓冲环到了什么地方。由于接收缓冲区为环形结构,BNRY和CURR相等时,环缓冲区可能满也可能空。为了使NIC能辨别这两种状态,规定当BNRY等于CURR时,才认为环缓冲区满;当缓冲区空时,CURR比BNRY指针值大1。因此,初始化时设置:BNRY=PSTART,CURR=PSTART+1。这时读写指针不一致,为了保证正确的读写操作,引入一软件指针NEXTPK指示下一包起始页面。显然,初始化时NEXTPK=CURR。这时,缓冲环的读指针对NEXTPK,而BNRY只是存储分组缓冲区的起始页面边界指示,其值为NEXTPK-1。

2.2接收控制过程

DSP完成对DP8390的初始化后,网卡就处于接收状态,一旦收到分组,就自动执行本地DMA,将NIC中FIFO数据送入接收缓冲环,然后向主机申请“数据分组接收到”中断请求。DSP如果响应中断,则启动网卡远程DMA读,将网卡缓冲区中的数据分组读入学生机存储区,然后对接收缓冲环CURR、NEXTPK、BNRY指针内容进行修改,以便网卡能从网上正确接收后续分组。DSP响应网卡接收中断后,接收控制过程如下:

①设置远程DMA的起始地址;RSAR0=00H,RSAR1=Nextpk。

②设置远程DMA操作的字节数,这个长度在46~1500字节范围内根据具体要求自己确定。

③0AH送命令寄存器CR,启动远程DMA读。

④从网卡数据端口依序读入数据分组,注意,最先读入的4字节非数据分组内容,第1字节为接收状态,第2字节为下一包页地址指针,3与4字节为接收字节数。第2字节内容应该送入Nextpk,其它字节根据用户要求处理。

⑤修改边界指针BNRY=Nextpk-1。

⑥清除远程DMA字节数寄存器RBCR0和RBCR1。

2.3发送控制过程

DSP先执行远程DMA写操作,将内存中的数据分组传至网卡发送缓冲区,然后启动发送命令进行数据分组发送。发送控制过程如下:

①设置远程DMA的起始地址为网卡发送缓冲区起始地址;

②设置远程DMA操作的字节数;

③12H送命令寄存器CR,启动远程DMA写;

④依序送出数据分组至网卡发送缓冲区;

⑤清除远程DMA字节数寄存器;

⑥设置发送字节数寄存器TBCR0和TBCR1;

⑦12H送命令寄存器CR,启动数据分组发送。

3发送方发送频率的控制

发送方发送频率的正确控制主要保护两点:一是有一个最小发送时间间隔,否则会因为接收方不能及时接收而导致系统瘫痪;二是发送频率能够足具体的功能实现要求。譬如在语音的实时通信中,发送频率就取决于声卡的采样频率。在8kHz采样频率时,声卡每秒钟采样8000字节,采用1024字节需用时128ms,如果通信协议规定发送1次传送1024字节有效数据,则必须每128ms发送一次才能保证缓冲区有新数据待发送,也才能保证接收方有新数据播放。128ms是一个理论计算数值,在实际的操作中采样速度和发送频率之间总是不能完全匹配,而存放数据的缓冲区大小是有限的,如果没有良好的控制技巧来实现正确发送,就会造成声音抖动和延时。解决的办法是双缓冲技术和双指针控制,并且根据采样速度和发送频率之间的匹配情况送入不同的发送通信进行处理后发送。正确发送的含义有两方面,一是每次发送的都是新数据,二是能满足接收方总在播放新数据的需求。

4接收方防止数据包的丢失

由于DSP通过中断请求判断是否有数据分组到来,如果中断繁忙而两个数据包到来时间相差非常短,DSP有可能只响应一次中断,从而导致丢包的发生。分析网卡接收数据过程,当网卡收到数据分组时,首先执行本地DMA,将NIC中FIFO数据送入接收缓冲环,并将本地DMA操作的起始地址存放在当前页寄存器(CURR)和当前本地DMA寄存器(CLDA0、CLDA1)中,DSP从网卡接收缓冲环读出数据到存储器则称远程DMA操作,用软件指针Nextpk来指示远程DMA的起始页面。因此通过比较网卡本地DMA和远程DMA的当前地址,即在中断服务子程序中比较CURR和Nextpk指针,或比较CLDA0、CLDA1和Nextpk指针,就可以保证当前数据分组放到了哪里就读出到哪里,从而防止丢包的发生。

网络程序范文篇4

1主要功能

1.1实时数据库:包括实时生产数据的采集贮存,管理,查询,系统可管理多达几十万店的实时数据.配合和先进的历史数据压缩算法.可以保存长达数年的历史数据。

1.2提供统一的配置管理系统安装调试好后.可以通过配置管理工具.在单台机上维护整个系统。

1.3趋势分析提供实时和历史趋势查看功能.并能对单点或多点多时间段的数据进行对比分析。

1.4流程图提供实时流程查看功能.从模拟图察看数据与生产现场的同步变化.坐在办公室就可以了解生产状况。

1.5数据转存。可按照用户定义,把部分历史数据导出到其他相关数据库中。

1.6报表插件可用来实现实时历史数据

1.7丰富的可扩展设备接口.可支持多种协议与控制设备.如OPC,DDE等。

1.8开放的二次开发接口.并能根据要求定制新的作用。

2网络结构

主要包括监视器,服务器,交换机,网关等。连接见下图:监视器/数据采集1服务器一交换机一网关机一交换机一数据采集2监视器/数据采集3

3系统特点

系统大多采用Pentium及芯片.CPU保证精确实时高效.为保证可靠性.多选用冗余设计,使系统安全可靠。系统人机界面功能丰富,软件灵活强劲.并支持离线仿真,为降低运行维护成本.多采用现场总线的系统设计.系统维护方便,信号采集卡件支持热插拔,操作平台采用通用计算机系统,有些厂家更是采用智能化设计,使危险分散,故障隔离为迅速排除故障.每单元有诊断功能.系统中所有单元均有状态指示灯.包括运行灯。故障灯.网络通信灯.可根据指示灯的状态及时排除故障。

网络程序范文篇5

(一)基于网络资源的教学模式变革的必然性

21世纪正在形成的数字化生存环境对我们的教育目标、教学内容、教学方法和手段等提出了全新的挑战和要求,传统教学模式的局限性越来越明显。开放式学习、多元化学习、终身学习的出现促使传统的教学模式从根本上发生变革,创建新型的教学模式是时展的必然要求。信息社会的发展,不仅要求提高人们的技术和能力,而且要求调整人们的社会能力,“社会能力”对人的一生具有重要意义,它包括:1.认识问题和解决问题的能力2.认识所承担业务和工作内在联系的能力3.在工作范围内发挥主观能动性,自我发展和独立进取的能力4.在工作过程中,独立、有效的组织能力5.在工作领域协调与协作的能力6.把握新信息、新技术的能力7.驾驭媒体,高效利用学习资源,促进学习过程优化的能力因此,教育机构面临的任务之一,是培养适应21世纪的新型人才,正视不断发展的社会现实,不断探索教学过程的新改善,引导学生优化自己的学习过程,掌握好现代信息技术支持下的学习技术,具备很强的信息获取、信息分析、信息加工及信息表达能力,即学会高效率学习的能力;任务之二,是利用有限的资源为越来越多有着不同知识背景的人提供最高质量的教育信息服务,利用互联网集结丰富的教学资源,为学习者提供最有效的学习。为此,教育界已经采取了一些措施来回应这些变化,其中很重要的一项就是研究以学生为核心的教与学的策略。在这种情况下,有不少人开始对以学生为中心的教与学模式即基于网络资源的教学过程进行研究。

(二)基于网络资源的教学模式提出的主要依据

基于网络资源的教学模式的提出主要依据现代教育技术解决教育教学问题的基本发表思想,即依靠各种各样的学习资源,以个别化学习为核心,采用系统方法来促进教学的顺利进行。AECT94定义中明确指出,教育技术领域实践和研究的主要对象是学习过程和学习资源。将学习过程和学习资源作为主要研究对象的理念是人们对教育技术发展的正确反映,也是认知心理学取代行为心理学占据教育技术理论基础主导地位的必然结果。以认知主义为发表的教育技术更侧重将学生引入“学会学习”的方向。进入80年代后,国际教育技术界对“学”的关注由教学资源进一步扩展到教学过程,把教学过程看作是系统组织的教学资源、教学内容和学习者的有机整体。可见,教育技术研究对象的重新确立,为我们提出基于资源的教学模式提供了坚实的理论依据。

(三)基于网络资源的教学模式开展的技术支持

随着信息技术和通信技术的迅速发展,用于信息传递和交流的媒体技术日益丰富和成熟。现代化传播媒体是当代教学活动的重要特点,其优势之一是不仅拓展了教学的时空观,而且将学生从大量繁琐的基础性学习活动中解脱出来,学习过程中的操作技能得到了有效加强,认知能力和操作技能可同步发展。优势之二是为教学过程研究的重心从“教”转移到“学”创造了条件,逐步实现从以“教师为主导”过渡到以“学生为主体”的教学模式。总之,媒体技术的发展及其在教育领域内的广泛应用,无论是从教学内容上还是从教学方法上,都为新型教学模式的产生提供了强有力的技术支持。网络资源对教学过程支持的四大优势:交互性强、资源丰富,不受时空限制和以学为主。其一,网络教育的魅力之一在于其后台的海量资源库,通过校园网络,可以学习其他院系学科知识,可以接受来自其他名校名师的指点;其二,网络非实时的交流既可以避免教师与学生直面的某种尴尬,也可以避免学生对提问的顾虑和担心;其三,网络使学生可以自己决定在任何时间任何地方根据实际情况学习,避免了传统教育时空的限制;网络资源为学习者提供了没有约束的学习环境。创造培养学生创新精神和实践能力的教和学的环境。

(四)网络环境支持教学过程服务

“授人以渔”是网络教学发展的原动力,采用多种途径为支助教学过程服务:其一,利用校园网,提供“研究性学习”和“协作式学习”的教与学实时交互,学生在线学习的同时可以查询、提问、讨论。其二,利用网上教学和教学管理平台,实现学生与学生、学生与教师之间的非实时交互,用来答疑、辅导、讨论、选课、提交作业等。其三,将课件压缩成光盘发给学生,使他们能方便地自主选择学习时间、地点和进度。其四,应用多种导学方式,给学生提供学习的思路和方法。其五,设立“学生学习发表”专栏,对学生晓之以理,讲思路、讲方法,而且开展政治思想教育、心理咨询等。人文关怀,给学生创造人性化的网络学习资助环境,在技术性网络之外织造服务性“人网”。为学生的自主学习提供及时、准确、全方位的引导、发表、督导,帮助学生解决学习过程中遇到的各种疑难,直至顺利学习,是网络环境下教学过程重要内容。

二、基于网络资源的教学模式设计

(一)基于网络的教学资源

网络资源应用于教育、教学过程的一般体现为网络课程、网络课件和网络环境,它们是网络教学和网络学习得以进行的物质技术基础。网络应用于教育领域,给人们提供了大量便捷的学习机会、丰富的教学环境和教学资源,使学习活动更加自主化、个性化,使教育的适应性大大加强。网络课程就是通过网络表现的某门学科的教学内容及实施的教学活动的总和,它包括两个组成部分:按一定的教学目标、教学策略组织起来的教学内容和网络教学支撑环境,其中网络教学支撑环境特指支持网络教学的软件工具、教学资源以及在网络教学平台上实施的教学活动。总而言之,网络课程要充分体现网络的这一特点,构建多媒体化的接近真实生活的自主、协作学习情境,能充分利用网络的资源开放性。

(二)基于资源的学习

基于资源的学习是“学习者借助各种类型的学习资源进行探索和实践,以获取课程知识和信息读写能力的学习过程”(DirectoryofOnlineResourcesforInformationLiterary,1997)。基于资源的学习是以学习者为中心的,学生以信息搜集者和翻译者的身份使用信息工具解决实际问题,并在此过程中完成知识的建构;教师在学习过程中则是以学习的督促者和帮助者的身份出现的;学习结果是将“信息读写能力”养成为一种积极有效的学习能力。基于资源的学习有两个基本特征:一是灵活性,即能适用于不同的学习风格和课程领域;二是自主性,指学生主动控制学习过程,通过积极参与各种主题任务研究来进行学习。值得注意的是,在教师的发表下使用多媒体材料来学习并不等同于基于资源的学习,学生必须亲自通过问题解决的经验来完成主题任务。与教师控制的传授教学相比,这种学习模式将学习过程变成学习者个人的探索与发现过程。

(三)基于资源的学习环境

基于资源的学习涉及到多种媒体资源的使用(书、杂志、报纸、多媒体、网络、社区以及人等),各种类型的学习资源是构成学习环境的主体。基于资源的学习环境可以看作是由多种教和学的资源精心设置成的学习环境。这个环境包括四种类型的学习资源,即基础性资源、组织性资源、经验性资源和评价反馈资源。基于资源的学习环境支持学生使用广泛的学习资源来解决问题。在这种学习环境中,教学活动的目的是让学生掌握解决问题的能力(授人以渔),而不仅仅是积累知识(授人以鱼)。基于资源的学习环境就是要学生学会在信息海洋中游泳的本领,也就是培养学生具备未来社会(数字化生存环境)所要求的信息读写能力(InformationLiteracy)。

三、基于网络资源的教学过程的设计

为保证基于资源的教学模式能顺利进行,除要建构一个良好的教学环境之外,还应对教学过程进行精心设计。

(一)分析学习者为了保证基于网络资源的教学能够有效地进行,需首先对学习者的学习准备进行分析,包括:(1)学生已经具备的知识;(2)学生使用学习资源的能力;(3)学习风格。其中,对学习风格的分析要侧重对学生支持同质分组或者异质分组的适应能力的分析,以便于确定学习组织形式。

(二)确立教学主题基于资源的教学通过研究主题将教学内容与学生信息技能的培养联系在一起,因此要对教学主题进行精心设计,并依此确定出教与学过程中可能用到的资源。教学主题一般选取与教学目标和学生学习、生活等密切相关的社会问题,让学生在解决这些问题的过程中完成知识和技能的迁移。

(三)创建教学资源环境教学资源环境的创建包括三个步骤:首先是选择恰当的教学资源,然后对这些资源进行适当处理,如对资源进行数字化处理,最后是在教育思想的发表下将这些资源组建为教学环境。

(四)设计学习与传递策略在策略设计中,要侧重对学习组织方式(分组学习或是个别化学习)、交互学习活动以及学习资源的传递方式等进行设计。在设计中,一般采用对学生进行分组的方法,以促进师生之间以及学生之间的交流与合作(注意实时交流和非实时交流的设计)。

(五)设计评价信息这部分的设计内容主要有两方面:一是对教学效果的评价,包括教学内容的范围、学习材料的深度以及网上的形势和方法等,还要特别注意所选资源的学习效果;二是对学生适应学习环境能力的评价,包括学生控制环境的能力,信息读写能力等。基于网络资源的教学模式鼓励学生通过自我评价来完成知识的建构,学生在学习过程中要不断对自己的知识、技能和学习能力进行评价,并及时做出调整。

(六)设计导学栏目在导学栏目要给学生提供明确的学习思路和方法。利用导学栏目帮助学习者解决在学习过程中遇到的各种疑难问题,提供“人性化服务”。例如设立“学生学习发表”专栏,对学生晓之以理,讲思路、讲方法,还可以开展政治思想教育、心理咨询等。创设人文关怀,给学生以人性化的网络学习资助环境,为学生的自主学习提供及时、准确、全方位的引导、发表、督导,帮助学生解决各种疑难,直至顺利学习,也是网络环境下教学过程重要内容。

四、结束语

网络程序范文篇6

计算机网络系统安全主要包括三个方面的内容:安全性、保密性、完整性。从系统安全的内容出发,计算机网络系统中安全机制基本的任务是访问控制:即授权、确定访问权限、实施访问权限、计算机网络审计跟踪。网络安全是对网络信息保密性、完整性和可用性的保护,主要包括组成网络系统的硬件、软件及在网络上传输信息的安全性。在现实生活中,网络安全的具体含义往往会随着使用者的不同而变化,例如用户仅仅希望个人信息在网络上传输时受到保护,避免被窃听、篡改和伪造;而网络提供商除了要关心这些之外,还要考虑如何应付突发攻击事件,以及出现异常时如何恢复网络通信,保持网络通信的连续性。

二、影响计算机网络系统安全的因素

1、自然因素:

(1)软件漏洞任何的系统软件和应用软件都不能是百分之百的无缺陷和无漏洞的,而这些缺陷和漏洞恰恰是非法用户、黑客进行窃取机密信息和破坏信息的首选途径。

(2)病毒攻击因为企业网络同样也是连接在互联网上的一个网络,所以它不可避免的要遭到这样或者那样的病毒的攻击。这些病毒有些是普通没有太大破坏的,而有些却是能造成系统崩溃的高危险病毒。病毒一方面会感染大量的机器,造成机器“罢工”并成为感染添另一方面会大量占用网络带宽,阻塞正常流量,形成拒绝服务攻击。

2、人为因素:

(1)操作失误操作员安全配置不当造成的安全漏洞,用户安全意识不强.用户口令选择不慎.用户将自己的帐号随意转借他人或与别人共享等都会对网络安全带来威胁。这种情况在企业计算机网络使用初期较常见,随着网络管理制度的建立和对使用人员的培训,此种情况逐渐减少.对网络安全己不构成主要威胁。

(2)恶意攻击这是计算机网络所面临的最大威胁,敌手的攻击和计算机犯罪就属于这一类。此类攻击又可以分为以下两种:一种是主动攻击,它以各种方式有选择地破坏信息的有效性和完整性;另一类是被动攻击,它是在不影响网络正常工作的情况下.进行截获、窃取、破译以获得重要机密信急。

三、计算机网络系统安全维护策略

网络安全技术随着网络实践的发展而发展,涉及的技术面非常广,其中认证、加密、防火墙及入侵检测等都是网络安全的重要防线。

1、认证:对合法用户进行认证,限制合法用户的访问权,防止非法用户获得信息访问权。如:①身份认证,当系统的用户要访问系统资源时,确认是否是合法用户。②报文认证,通信双方对通信的内容进行验证。③访问授权,确认用户对某资源的访问权限。④数字签名,一种使用加密认证电子信息的方法。

2、数据加密:通过一种方式使信息变得混乱,让未被授权的人看不懂它。主要包括:①私钥加密,加密信息和解密信息使用同一个密钥。②公钥加密,加密信息和解密信息使用两个不同的密钥。

3、配置防火墙防火墙是网络访问控制设备,用于拒绝除了明确允许通过之外的所有通信数据。利用防火墙,在网络通讯时执行一种访问控制尺度,允许防火墙同意访问的人与数据进入自己的内部网络,同时将不允许的用户与数据拒之门外,最大限度地阻止网络中的黑客来访问自己的网络,防止他们随意更改、移动甚至删除网络上的重要信息。大多数防火墙都采用几种功能相结合的形式来保护网络不受攻击,其中最流行的有静态分组过滤、动态分组过滤、状态过滤和服务器技术,它们的安全级别依次升高。此外,现今良好的防火墙还采用了VPN(虚拟专用网)、检视和入侵检测技术等。防火墙是一种行之有效且应用广泛的网络安全机制,防止Internet上的不安全因素蔓延到局域网内部,所以,防火墙是网络安全的重要一环。

4、采用入侵检测系统入侵检测技术是为保证计算机系统的安全而设计与配置的一种能够及时发现并报告系统中未授权或异常现象的技术,是一种积极主动的安全防护技术,提供了对内部入侵、外部入侵和误操作的实时保护,在网络系统受到危害之前拦截相应入侵。在入侵检测系统中利用审计记录,入侵检测系统能够识别出任何不希望有的活动,从而限制这些活动,以保护系统的安全。

网络程序范文篇7

1雷电雷击地面规律

要想更好的对计算机网络系统进行雷击防护,就应该对累计地面规律进行相应的分析,以便更好的解决雷击系统问题。一般情况下,雷击地面过程主要包括两方面,一方面是先导放电,另一方面是主放电。当雷云中电荷集中在几个电荷中心的时候,并不是所有电荷中心的电荷数量都是相等。一旦某一点的电荷数量较多,其周围的强度就会使其周围的空气绝缘甚至出现穿击。当空气有游离的时候,就会使原来绝缘的空气具有导电性,并通过雷云向相应的位置伸展,进而形成放电过程。但是这里的先导放电并不是连续的,而是雷云到地面后,先导放电随之下降。雷云与先导放电中负电荷能更好的感应出大地上的正电荷,这就会严重的影响建筑物及计算机系统机房内部的通信设备,甚至会毁坏计算机系统;主放电过程就是当点到到达地面或是到达地面临近的地方,就会因先导通道部位的电位极高,而使剩余空气中的电场强度,达到一定的程度,进而使空气出现游离现象,并产生强度较高的离子区,沿着先到通道自上而下的进行传播,最终形成一条高导电率等离子通道,并使雷云中的负电荷和大地中的正电荷中和,以达到主放电过程。从中可以看出,雷云的放电量是多重的,一旦雷云产生一定量的电流可能会造成电子设备烧毁或是电器设备损坏。

2雷电进入计算机网络的方式

雷电进入计算机网络的方式总体上来说可分为供电电源线路入侵、电磁感应及地电位反击电压通过接地体入侵。一般情况下,计算机系统的电源是由电力线路输入内室的,这种方式很可能会遭受到雷击或雷击电磁脉冲。这里的供电线路入侵一般是因直击雷集中高压线路后,在低压电线路上出现相应的过电压,并入侵到计算机设备中。也可能是雷击中建筑物或是其附近的线路时产生雷击脉冲,给计算机网络带来毁灭性的打击;电磁感应中的静电感应一般是在雷云的作用下,通过相应的通信线路上的符号形成的相反电荷,也可能事因为雷电电流速度的变化,而使周围的磁场变强并在近线路上有较高的电动势。也有可能因雷电架空线路的作用,使雷电波通过相应的线路进入屋内,损坏相应设备甚至会危害人们的生命健康;地电位反击电压通过接地体入侵是在雷击中建筑物时,会产生强大的电流并通过接地体直接泄入大地,并在接地体附近形成放射型的电位分布。一旦建筑物周围有独立接地体的电子设备,计算机与设备与建筑物之间就会有较高的电压差,甚至会有电位反击,使雷电入侵电压达到万伏以上。一旦出现这种状况很可能导致计算机设备不同程度的损坏。

3计算机网络系统雷电防护措施

3.1电源系统的防护以电子计算机为基础的系统的点电压流、电压相对较少。在这种情况下,防御电源线线路的过电压就会少于电力设备。此时,要想通过电源对其进行相应的防护,就应该采取相应的抑制瞬间过电压、过电流措施,以保证计算机系统安全状态值。一旦雷电产生较大的电压、电流,在短时间内想要对相应的电压进行限制或是泄流是比较困难的。要想更好的解决这一问题,就应该根据相应防雷保护区原理对每个分区的交界处进行相应的防雷保护,可以在高压变压器后端到二次设备电缆内芯两端适当的加装避雷器,以保证二次电压设备安全。也可以在精密仪器设备及UPS的前端适当的加装避雷器或是保护器,将其作为三级防护。只有通过多级防护,才能最大限度的对相应的雷电流进行限压或是泄流,以避免雷电对计算机系统造成重大危害。

3.2直接雷防护直接雷防护就是雷电直接击中计算机信息系统建筑物上,采取避雷或是接地装置进行防雷。这类防雷装置一般安装在建筑物的顶上。在安装的时候,必须保证避雷针、避雷带等有不同的引线,以保证相邻的线距,保证每层楼房的母线连接,缩短线距,保证电位均衡。为了更好的保护计算机系统,屋顶也应该安装相应的避雷针、避雷器,并用相应的材质将避雷带个接地网进行连接,以保证机房内不同的金属外壳、工作连接及光线架等以最小的距离连接在一起。保证接地网和电源系统接地网等相互连接,以达到电压均衡的目的。

3.3信号系统的防护计算机实现网络通信是通过相应介质来实现的,不仅通过普通电话线实现互联,也可能通过非屏蔽双绞线实现互联的。就目前防雷现状来看,光纤介质不易受到雷击产生雷击脉冲的影响,而其他的介质则与其相反,会不同程度的产生相应的雷击脉冲。特别使用ADSL方式的电话线连接方式,易出现雷击现象,易造成损失。因此,在计算机网络系统设计的过程中,应该根据计算机网络信号的不同,采取相应的措施,以对计算机网络系统进行防护。在应用计算机系统的时候,尽量避免将通信电缆暴露与地面,最好是将相应的电缆埋在地底下或是用屏蔽管槽将两端接地,也可以在入户前,安装相应的避雷器。在考虑信号传输宽带或是衰减的过程中,尽量与网络性能指标标准相一致。

网络程序范文篇8

关键词JAVA,网络,SOCKET,APPLET

网络上的系统结构多为客户/服务器模式,服务器端负责数据和图像等的存储、维护、管理以及传递,客户端则负责人机界面的操作、送出需求及显示收回的数据。

下面介绍一下如何使用JAVA来进行网络编程:

1)由于客户端通过IE同服务器建立联系,所以客户端使用Applet,服务器端使用Application;

2)服务器应设置成多线程,应答多个客户的请求;

3)两端通信使用SOCKET机制。

1Java中输入/输出流概念:

过滤流DataInputStream和DataOutputStream除了分别作为FilterInputStream和FilterOutputStream的子类外,还分别实现了接口DataInput和DataOutput。接口DataInput中定义的方法主要包括从流中读取基本类型的数据、读取一行数据、或者读取指定长度的字节数,如readBoolean()readInt()、readLine()、readFully()等。接口DataOutput中定义的方法主要是向流中写入基本类型的数据或者写入一定长度的字节数组,如writeChar()、writeDouble()DataInputStream可以从所连接的输入流中读取与机器无关的基本类型数据,用以实现一种独立于具体平台的输入方式;DataInputStream可以向所连接的输出流写入基本类型的数据。

2Socket机制

Socket是面向客户/服务器模型设计的,网络上的两个程序通过一个双向的通讯连接实现数据的交换,这个双向链路的一端称为一个Socket。Socket通常用来实现客户方和服务方的连接。客户程序可以向Socket写请求,服务器将处理此请求,然后通过Socket将结果返回给用户。

Socket通信机制提供了两种通讯方式:有联接和无联接方式,分别面向不同的应用需求。使用有联接方式时,通信链路提供了可靠的,全双工的字节流服务。在该方式下,通信双方必须创建一个联接过程并建立一条通讯链路,以后的网络通信操作完全在这一对进程之间进行,通信完毕关闭此联接过程。使用无联接方式时其系统开销比无联接方式小,但通信链路提供了不可靠的数据报服务,不能保证信源所传输的数据一定能够到达信宿。在该方式下,通信双方不必创建一个联接过程和建立一条通讯链路,网络通信操作在不同的主机和进程之间转发进行。

3Java语言

Java语言的优点主要表现在:简单、面向对象、多线程、分布性、体系结构中立、安全性等方面。

(1)简单性

Java与C++语言非常相近,但Java比C++简单,它抛弃了C++中的一些不是绝对必要的功能,如头文件、预处理文件、指针、结构、运算符重载、多重继承以及自动强迫同型。Java实现了自动的垃圾收集,简化了内存管理的工作。这使程序设计更加简便,同时减少了出错的可能。

(2)面向对象

Java提供了简单的类机制和动态的构架模型。对象中封装了它的状态变量和方法,很好地实现了模块化和信息隐藏;而类则提供了一类对象的原型,通过继承和重载机制,子类可以使用或重新定义父类或超类所提供的方法,从而既实现了代码的复用,又提供了一种动态的解决方案。

Java是一种完全面向对象的程序设计语言,它除了数组、布尔和字符三个基本数据类型外的其它类都是对象,它不再支持全局变量。在Java中,如果不创建新类就无法创建程序,Java程序在运行时必须先创建一个类的实例,然后才能提交运行。

Java同样支持继承特性,Java的类可以从其它类中继承行为,但Java只支持类的单重继承,即每个类只能从一个类中继承。

Java支持界面,界面允许程序员定义方法但又不立即实现,一个类可以实现多个界面,利用界面可以得到多重继承的许多优点而又没有多重继承的问题。

(3)多线程

多线程使应用程序可以同时进行不同的操作,处理不同的事件。在多线程机制中,不同的线程处理不同的任务,他们之间互不干涉,不会由于一处等待影响其他部分,这样容易实现网络上的实时交互操作。

Java程序可以有多个执行线程,如可以让一个线程进行复杂的计算,而让另一个线程与用户进行交互,这样用户可以在不中断计算线程的前提下与系统进行交互。多线程保证了较高的执行效率。

(4)分布性

Java是面向网络的语言。通过它提供的类库可以处理TCP/IP协议,用户可以通过URL地址在网络上很方便的访问其他对象。

(5)体系结构中立

Java是一种网络语言,为使Java程序能在网络的任何地方运行,Java解释器生成与体系结构无关的字节码结构的文件格式。Java为了做到结构中立,除生成机器无关的字节码外,还制定了完全统一的语言文本,如Java的基本数据类型不会随目标机的变化而变化,一个整型总是32位,一个长整型总是64位。

为了使Java的应用程序能不依赖于具体的系统,Java语言环境还提供了用于访问底层操作系统功能的类组成的包,当程序使用这些包时,可以确保它能运行在各种支持Java的平台上。

java.lang:一般的语言包。其中包括用于字符串处理、多线程、异常处理和数字函数等的类,该包是实现Java程序运行平台的基本包

java.util:实用工具包。其中包括哈希表、堆栈、时间和日期等

java.io:基于流模型的输入/输出包。该包用统一的流模型实现了各种格式的输入/输出,包括文件系统、网络和设备的输入/输出等

:网络包。该包支持TCP/IP协议,其中提供了socket、URL和WWW的编程接口

java.awt:抽象窗口工具集。其中实现了可以跨平台的图形用户界面组件,包括窗口、菜单、滚动条和对话框等

java.applet:支持applet程序设计的基本包

(6)安全性

用于网络、分布环境下的Java必须要防止病毒的入侵,Java不支持指针,一切对内存的访问都必须通过对象的实例变量来实现,这样就防止了程序员使用欺骗手段访问对象的私有成员,同时也避免了指针操作中容易产生的错误。

4JAVA工具

(1)JDK

1)Java编译器

Java编译器将Java源代码文件编译成可执行的Java字节码。Java源代码文件的扩展名为.java,Java编译器把这种扩展名的文件编译成扩展名为.class的文件。源文件中的每个类在编译后都将产生一个class文件,这意味一个Java源代码文件可能编译生成多个class文件。

2)Java解释器

Java解释器对编译生成的字节码格式的可执行程序的运行提供支持,它是运行非图形Java程序的命令行工具。

3)Appletviewer

它是JavaApplet的简单测试工具,可使用它来测试JavaApplet程序,而不需要WWW浏览器的支持。

(2)VisualJ++

VisualJ++集成了可视化界面设计、交互式调试、代码编辑、联机帮助信息和介绍如何快速掌握该开发环境的实用向导等多项功能,同时具有能充分利用ActiveX和COM新技术的优势。利用VisualJ++可创建交互性很强的Internet应用程序,是难得的Java开发系统。

5客户机/服务器通信的实现:

(1)Application同Applet的通信

两端通过Socket机制进行连接:

1)客户端的编程流程:

?打开Socket,新建一个套接字;

?为套接字建立一个输入和输出流;

?根据服务器协议从套接字读入或向套接字写入;

?清除套接字和输入/输出流;

2)服务器端的编程流程:

?打开ServerSocket,创建一个服务器型套接字和一个普通套接字,服务器型套接字在指定端口为客户端请求的Socket服务;

?使用ServerSocket类的accept()方法使服务器型套接字处于监听状态并把监听结果返回给普通套接字;

?为该普通套接字创建输入和输出流;

?从输入和输出流中读入或写入字节流,进行相应的处理,并将结果返回给客户端;

?在客户端和服务器工作结束后关闭所有的对象,如服务器型的套接字,普通套接字,输入和输出流。

正是由于Java系统具有基于Socket的灵活通信机制,因而其应用程序能自由地打开和访问网络上的对象,就象在本地文件系统中一样。

(2)Applet之间的通信:

Applet之间的通信使用AppletContext类的getApplet()方法。

<appletcode=applet1.classwidth=200height=200name=first>

只要在程序中加入

Appletoneapplet=getAppletContext().getApplet(“first”);便可使用name为first的Applet中的方法了。

在该课题中大量使用了该种通信方法,因为专门同服务器端通信的Applet中包含接收信息方法和发送信息方法,所有客户端的Applet都要使用负责通信的Applet中的方法,所以客户端的Applet同负责通信的Applet必须进行通信。

6程序

//服务器端程序S.java负责与客户端通信

importjava.io.*;

.*;

importjava.lang.*;

importT2;

classThreadEchoHandlerextendsThread//创建线程

{

T2theT2=newT2();

Socketincoming;

intcounter;

ThreadEchoHandler(Socketi,intc)

{incoming=i;

counter=c;}

publicvoidrun()

{

try

{

DataInputStreamin=newDataInputStream(incoming.getInputStream());

DataOutputStreamout=newDataOutputStream(incoming.getOutputStream());

System.out.println("hello");

booleandone=false;

while(!done)

{Stringaa="";

Stringstr=in.readUTF();//从客户端得到字符串

//在此加入各自的服务程序

System.out.println(str);

theT2.pass(str);//解码

theT2.tongji();//修改监控库中的信息

aa=theT2.guan();//操纵数据库

System.out.println("stringzis:"+aa);

if(pareTo("null")!=0)

//若是查询数据库,返回查询后的结果

{//若不是查询数据库,不向客户端输出信息

out.writeUTF(aa);

out.flush();}

}//while

incoming.close();//线程关闭

}//try

catch(IOExceptione)

{System.out.println(e);}

}//endrun

}

//----------------------------------------

classS

{

publicstaticvoidmain(String[]args)

{

inti=1;

try

{

ServerSockets=newServerSocket(1111);

for(;;)

{

Socketincoming=s.accept();

System.out.println("connect:"+i);

newThreadEchoHandler(incoming,i).start();

i++;

}

}

catch(Exceptione)

{System.out.println(e);}

}

}

//客户端通信小应用程序Echo.java

importjava.io.*;

.*;

importjava.awt.*;

importjava.applet.*;

publicclassEchoextendsApplet

{

TextAreata;

SocketechoSocket;

DataOutputStreamos;

DataInputStreamis;

StringLine;

publicvoidinit()

{

setBackground(Color.white);

ta=newTextArea(5,80);

ta.setEditable(false);

add(ta);

try

{echoSocket=newSocket("10.102.4.41",1111);}//与服务器建立连接

catch(IOExceptione)

{System.out.println("error");}

}

publicvoidst(Stringstri)//发送字符串的方法

{

try

{DataOutputStreamos=newDataOutputStream(echoSocket.getOutputStream());

DataInputStreamis=newDataInputStream(echoSocket.getInputStream());

os.writeUTF(""+stri);//向服务器输送string

os.flush();

}

catch(IOExceptione)

{System.out.println("error:"+e);}

}

publicStringst1()//接收字符串的方法

{

StringLine="";

try

{DataOutputStreamos=newDataOutputStream(echoSocket.getOutputStream());

DataInputStreamis=newDataInputStream(echoSocket.getInputStream());

Line=is.readUTF();//从服务器读来的信息

ta.appendText(""+Line);//在文本域中输出信息

}

catch(IOExceptione)

{System.out.println("error:"+e);}

returnLine;

}

}

7程序调试心得:

1)在建立Socket连接时,两端的端口号必须设为一致,否则建立不了连接。服务器端必须有主机IP地址或主机名参数。

2)连接建立好之后应确定输入和输出流。起初程序中用的是DataInputStream和PrintStream,结果只能传输英文,传输中文时产生乱码,将PrintStream改为DataOutputStream,使用readUTF()和writeUTF()方法后,中文传输问题得到解决。

3)如果一个使用某端口的程序没有关闭,另一个程序就不能使用这个端口。

4)开始进行通信的程序均为Application,因不符合客户机/服务器机制,应将客户端的Application改为Applet。其转化的主要步骤如下:

?创建一个包含APPLET标签的HTML文件;

?去掉应用程序中的main()方法;

?类名应继承Applet类,而不是Frame类,并在程序开头加入

importjava.applet.*;语句;

?用init()方法代替Application程序中的构造方法,当浏览器创建Applet类对象的时候,它自动执行init()方法;

?如Application中缺省使用了BorderLayout布局管理器,应在Applet的init()方法中重新设定;

?如果Application中有setTitle()方法,必须将其去掉,如Application中使用了菜单,在Applet中用按钮来替换。

5)懂得了在一程序中如何引用自定义的类中的方法和变量,在程序开头加入import类名;在程序中加入类名实例=new类名();然后使用

实例.方法(),实例.变量即可。

参考文献:

[1]廖雷等,Java程序设计教程,中国电力出版社,2003

网络程序范文篇9

关键词:DSP网络通信程序通信协议网卡

DSP芯片是专门为实现各种数字信号处理算法而设计的、具有特殊结构的微处理器,其卓越的性能、不断上升的性价比、日渐完善的开发方式使它的应用越来越广泛。将计算机网络技术引入以DSP为核心的嵌入式系统,使其成为数字化、网络化相结合,集通信、计算机和视听功能于一体的电子产品,必须大大提升DSP系统的应用价值和市场前景。将DSP技术与网络技术相结合,必须解决两个关键问题:一是实现DSP与网卡的硬件接口技术,二是基于DSP的网络通信程序设计。DSP与网卡的硬件接口技术参考文献[1]有比较详尽的论述,以下主要讨论基于DSP的网络通信程序设计。

1通信协议的制定

协议是用来管理通信的法规,是网络系统功能实现的基础。由于DSP可以实现对网卡的直接操作,对应于OSI网络模型,网卡包含了物理层和数据链路层的全部内容,因此,规定了数据链路层上数据帧封装格式,就可以为基于DSP的局域网络中任意站点之间的通信提供具体规范。因为以太网是当今最受欢迎的局域网之一,在以太网中,网卡用于实现802.3规程,其典型代表是Novell公司的NE2000和3COM公司的3C503等网卡,所以研究工作中的具体试验平台是以DSP为核心构成的以太局域网,主要用于语音的实时通信,所使用的网卡为Novell公司的NE2000网卡。NE2000网卡的基本组成请见参考文献[2],其核心器件是网络接口控制器(NIC)DP8390。该器件有三部分功能:第一是IEEE802.3MAC(媒体访问控制)子层协议逻辑,实现数据帧的封装和解封,CSMA/CA(带碰撞检测功能的载波侦听多址接入)协议以及CRC校验等功能;第二是寄存器堆,用户对NE2000网卡通信过程的控制主要通过对这些寄存器堆中各种命令寄存器编程实现;第三是对网卡上缓冲RAM的读写控制逻辑。DP8390发送和接收采用标准的IEEE802.3帧格式。IEEE802.3参考了以太网的协议和技术规范,但对数据包的基本结构进行了修改,主要是类型字段变成了长度字段。所以,以DSP为核心的局域网内通信数据包基本格式如图1所示。

DSP读出数据包和打包从目的地址开始。目的地址用来指明一个数据帧在网络中被传送的目的节点地址。NE2000支持3种目的地址:单地址、组地址及广播地址。单地址表示只有1个节点可以接收该帧信息;组地址表示最多可以有64个字节接收同一帧信息;而广播地址则表示它可以被同一网络中的所有节接收。源地址是发送帧节点的物理地址,它只能是单地址。目的地址和源地址指网卡的硬件地址,又称物理地址。

在源地址之后的2个字节表示该帧的数据长度,只表示数据部分的长度,由用户自己填入。数据字段由46~1500字节组成。大于1500字节的数据应分为多个帧来发送;小于46字节时,必须填充至46字节。原因有两个:一是保证从目的地址字段到帧校验字段长度为64字节的最短帧长,以便区分信道中的有效帧和无用信息;二是为了防止一个站发送短帧时,在第一个比特尚未到达总线的最远端时就完成帧发送,因而在可能发生碰撞时检测不到冲突信号。NE2000对接收到的从目的地址字段后小于64字节的帧均认为是“碎片”,并予以删除。在数据字段,根据系统的具体功能要求,用户可以预留出若干个字节以规定相应的协议,以便通信双方依据这些字节中包含的信息实现不同的功能。

2基于DSP的网络通信程序设计

如果基于网络操作系统,用户可以利用一些软件对网络操作系统的支持,很容易地编写出优秀的网络通信程序,但这些程序必须依附于网络操作系统。而在DSP环境下,必须深入了解网络接口控制器(NIC)的工作原理[2],通过对网络直接编程,实现局域网内任意站点之间的通信而完全抛开网络操作系统。

DSP对网卡的通信过程控制就是DSP对DP8390中各种寄存器进行编程控制,完成数据分组的正确发送和接收。DP8390的所有内部寄存器都是8位,映像到4个页面。每个页面有16个可供读写的寄存器地址(RA=00H~0fH)。页面的选择由命令寄存器CA控制。第0页寄存器用于收发过程,第1页寄存器主要用于DP8390的初始化,第2页寄存器则用于环路诊断。DSP对寄存器的操作是将寄存器作为DSP的端口设备,其实际物理端口地址(PPA)为网卡基本I/O端口地址(BIOA)与寄存器地址(RA)之和(即PPA=BIOA+RA)。应注意的是,PPA与寄存器间并不存在一一对应关系,对PPA的读操作与写操作并不一定是对同一寄存器进行的,这种情况在第0页尤其明显。用户数据分组在DSP和网卡交互是通过网卡的数据端口实现的,既可以用DMA方式也可以用PIO方式读入数据分组或将数据分组送至网卡RAM缓冲区。在本系统中,DSP采用DMA方式对网卡进行数据读写。网卡的数据端口地址(NDPA)为网卡基本I/O地址(BIOA)加偏移地址10H(即NDPA=BIOA+10H)。

网卡通信过程控制可分为网卡初始化、接收控制和发送控制。下面分别予以讨论。

2.1网卡初始化

网卡初始化的主要任务是设置所需的寄存器状态,确定发送和接收条件,并对网卡缓冲区RAM进行划分,建立接收和发送缓冲环。具体过程请参阅参考文献[2]。需要说明的是,每一块网卡被赋予一个物理地址,以便通信站点的标识。这个物理地址存在网卡的PROM(存储地址为0000~0005H)六个单元中,在网卡初始化时,通过远程DMA读入DSP内存中,并送入网卡物理地址寄存器。在一步的意义在于:一方面,如果能正确读出网卡的物理地址,则说明网卡硬件基本没有问题,网卡的上电复位和DSP对网卡的初始化顺利通过;另一方面,这个物理地址可以用于DSP网络系统中的点名、包的过滤丢弃等服务,也就是说,在链路层根据数据帧携带的源地址和目的地址确定数据报从哪里来,是否接收或丢弃。网卡初始化时另一个重要的工作就是接收缓冲环的设置,为了有效利用缓冲区,NIC将接收缓冲区RAM构成环形缓冲结构,如图2所示。

接收缓冲区RAM分成多个256字节的缓冲区,N个(N最大为256)这样的缓冲区通过指针控制链接成一条逻辑上的缓冲环。缓冲环的开始页面地址存入PSTART寄存器,环页面结束地址存入PSTOP寄存器。PSTART和PSTOP确定了接收缓冲环的大小和边界。为便于缓冲环读写操作,还需要2个指针:当前页面指针CURR和边界指针BNRY。CURR确定下一包放在何处,起着缓冲环写页面指针作用;BNRY指向未经DSP取走处理最早到达的数据包起始页面,新接收的数据包不可将其覆盖,起着缓冲环读页面指针的作用。也就是说,CURR可以告诉用户网卡接收的数据分组当前放到了什么位置,而BNRY则用于确定DSP读缓冲环到了什么地方。由于接收缓冲区为环形结构,BNRY和CURR相等时,环缓冲区可能满也可能空。为了使NIC能辨别这两种状态,规定当BNRY等于CURR时,才认为环缓冲区满;当缓冲区空时,CURR比BNRY指针值大1。因此,初始化时设置:BNRY=PSTART,CURR=PSTART+1。这时读写指针不一致,为了保证正确的读写操作,引入一软件指针NEXTPK指示下一包起始页面。显然,初始化时NEXTPK=CURR。这时,缓冲环的读指针对NEXTPK,而BNRY只是存储分组缓冲区的起始页面边界指示,其值为NEXTPK-1。

2.2接收控制过程

DSP完成对DP8390的初始化后,网卡就处于接收状态,一旦收到分组,就自动执行本地DMA,将NIC中FIFO数据送入接收缓冲环,然后向主机申请“数据分组接收到”中断请求。DSP如果响应中断,则启动网卡远程DMA读,将网卡缓冲区中的数据分组读入学生机存储区,然后对接收缓冲环CURR、NEXTPK、BNRY指针内容进行修改,以便网卡能从网上正确接收后续分组。DSP响应网卡接收中断后,接收控制过程如下:

①设置远程DMA的起始地址;RSAR0=00H,RSAR1=Nextpk。

②设置远程DMA操作的字节数,这个长度在46~1500字节范围内根据具体要求自己确定。

③0AH送命令寄存器CR,启动远程DMA读。

④从网卡数据端口依序读入数据分组,注意,最先读入的4字节非数据分组内容,第1字节为接收状态,第2字节为下一包页地址指针,3与4字节为接收字节数。第2字节内容应该送入Nextpk,其它字节根据用户要求处理。

⑤修改边界指针BNRY=Nextpk-1。

⑥清除远程DMA字节数寄存器RBCR0和RBCR1。

2.3发送控制过程

DSP先执行远程DMA写操作,将内存中的数据分组传至网卡发送缓冲区,然后启动发送命令进行数据分组发送。发送控制过程如下:

①设置远程DMA的起始地址为网卡发送缓冲区起始地址;

②设置远程DMA操作的字节数;

③12H送命令寄存器CR,启动远程DMA写;

④依序送出数据分组至网卡发送缓冲区;

⑤清除远程DMA字节数寄存器;

⑥设置发送字节数寄存器TBCR0和TBCR1;

⑦12H送命令寄存器CR,启动数据分组发送。

3发送方发送频率的控制

发送方发送频率的正确控制主要保护两点:一是有一个最小发送时间间隔,否则会因为接收方不能及时接收而导致系统瘫痪;二是发送频率能够足具体的功能实现要求。譬如在语音的实时通信中,发送频率就取决于声卡的采样频率。在8kHz采样频率时,声卡每秒钟采样8000字节,采用1024字节需用时128ms,如果通信协议规定发送1次传送1024字节有效数据,则必须每128ms发送一次才能保证缓冲区有新数据待发送,也才能保证接收方有新数据播放。128ms是一个理论计算数值,在实际的操作中采样速度和发送频率之间总是不能完全匹配,而存放数据的缓冲区大小是有限的,如果没有良好的控制技巧来实现正确发送,就会造成声音抖动和延时。解决的办法是双缓冲技术和双指针控制,并且根据采样速度和发送频率之间的匹配情况送入不同的发送通信进行处理后发送。正确发送的含义有两方面,一是每次发送的都是新数据,二是能满足接收方总在播放新数据的需求。

4接收方防止数据包的丢失

由于DSP通过中断请求判断是否有数据分组到来,如果中断繁忙而两个数据包到来时间相差非常短,DSP有可能只响应一次中断,从而导致丢包的发生。分析网卡接收数据过程,当网卡收到数据分组时,首先执行本地DMA,将NIC中FIFO数据送入接收缓冲环,并将本地DMA操作的起始地址存放在当前页寄存器(CURR)和当前本地DMA寄存器(CLDA0、CLDA1)中,DSP从网卡接收缓冲环读出数据到存储器则称远程DMA操作,用软件指针Nextpk来指示远程DMA的起始页面。因此通过比较网卡本地DMA和远程DMA的当前地址,即在中断服务子程序中比较CURR和Nextpk指针,或比较CLDA0、CLDA1和Nextpk指针,就可以保证当前数据分组放到了哪里就读出到哪里,从而防止丢包的发生。

网络程序范文篇10

网络经济时代最大的特征是信息传递的迅速、及时和准确,企业会计报表的半年呈报或年度呈报已不能适应网络时代的要求,实时联机报告系统既是需要又成为可能。全球经济环境下大规模的会计信息使用者投资策略呈现多样化和个性化的趋势,管理者、投资者以及相关利益集团希望可以随时通过在线访问获取企业最新的、历史的会计信息,以便作出正确的经营决策,减少风险。另外从会计信息呈报的内容方面看,投资者要求从看重财务信息扩展到财务信息与非财务信息并重,从着重呈报最终经营成果信息扩展到呈报企业的背景信息和前瞻性信息为主的信息,但目前的会计业务流程并不能满足上述要求。因此,用信息技术彻底地重新设计会计业务流程,是满足企业内外会计信息使用者的需求,提高企业核心竞争力的重要研究议题。

一、传统的会计业务流程及其缺陷

传统的会计信息系统需经过一系列顺序的循环活动,会计核算严格按照“填制凭证一登记账簿一编制报表”的顺序,一层层地进行。这种会计流程虽然在内部牵制方面能发挥一定的作用,但是会延长时间,降低会计报告的及时性,且使得会计信息内容单一化。时下流行的电算化会计信息系统虽然替代了手工操作,但财务会计流程自动化仅仅是手工财会工作的翻版,并未改变传统会计信息系统结构的本质。大部分电算化商品软件一般将会计系统分解为原材料核算子系统、工资核算子系统、销售核算子系统、固定资产核算子系统、成本核算子系统、账务处理子系统、报表编制子系统等相对独立的模块,各模块下再进行细分,形成一个名副其实的“金字塔”式结构。因此各核算子系统之间彼此分割,成为一个个独立的信息孤岛,会计数据传输往往是滞后的、零散的。这种财务会计流程并没有改变传统会计信息系统结构的本质,也没有消除其缺陷。

1.难以满足管理需要。财务部门只是记录经济业务的资金流信息,并不采集业务活动的全部数据,同一经济业务的相关数据被分别保存在财会人员和非财会人员手中,财务人员手中只有描述业务事件的子集数据也这样忽略了大量管理信息,导致会计信息系统与其他系统数据有可能不一致或信息隔阂和信息重复。

2.无法满足实时控制的需要。传统会计信息系统所反映的资金流信息往往滞后于物流信息,财务账和财务报告不是当前时点的余额,以至于企业元法从效益角度上对经营生产活动进行实时控制。会计数据通常是在业务发生后采集,会计数据加工是将滞后采集的数掘进行排序、过账、汇总、对账等。财务报告不能直接利用,必须经过若干后台加工才能提交到使用者手中。在经济环境瞬息万变的今日,信息的实时性决定了它的有效性和控制力度,会计信息的滞后性不能使管理者从会计信息系统中得到所需的信息,降低了会计信息的相关性,失去了其应有的价值。不管是手工的会计业务流程还是这种会计电算化方式的会计信息系统,其实质仍然是事后算账,并没有充分发挥网络的优势,无法支持事前支持、事中控制、事后分析。

二、将流程再造思路应用于会计信息系统

(一)关于业务流程再造

“业务流程再造”(BPR)是美国的MichaelHammer于1990年提出的。它的内涵是指基于信息技术的、为更好地满足顾客需要服务的、系统化的、企业组织工作流程及相关活动,它突破了传统劳动分工理论的思想体系,强调企业组织形式以“流程导向”替代原有的“职能导向”,为企业经营管理提出了全新的思路。福特公司北美财务部门通过BPR重建其付款程序,以减少间接费用和管理费用是最典型的例子。BPR的基本内容可概括为:以顾客需求和企业的战略目标为驱动力,以企业的流程为对象,运用信息技术、人与组织管理,达到大幅度提高企业整体绩效的目标。许多实际中成功的BPR已经表明信息技术使企业流程改造成为可能并非常有效,同时它又是流程改造的组成要素之一,从根本上改变了企业的经营管理活动方式。但BPR本身并不是一种形式,更不是一个算法或者公式,它所体现的更多的是一种观念和思想,即从顾客需求出发、以企业的经营目标为核心,在动态的竞争环境中保持一种自我反省的头脑,发现并解决存在的问题,让流程的运转能够满足顾客的期望和服务于企业的最大利益,使企业保持一种强有力的竞争地位。