Java在编写网络通信程序中的应用

Java在编写网络通信程序中的应用


2024年4月2日发(作者:)

维普资讯

中国科技信息2O08年第2期 

e 。sc慷I妊 AND"I ̄.CHNOLOGY 镄 ION Jan 2 避| 

些浏览器本身提供的功能结合起来,使它 

更安全。Java语言在你的机器上执行前,要 

经过很多次的测试。它经过代码校验,检查 

代码段的格式,检测指针操作,对象操作是 

通信程序中的应用 

徐敏’- 

1,山东大学 250 1 00;2,潍坊职业学院 26 1 0 5 1 

副图片而等待是一件很烦恼的事情。在 

Java里,你可用一个单线程来调一副图 

片,而你可以访问HTML里的其它信息而 

不必等它。 

(4)分布性 

Java包括一个支持HTTP; ̄1FTP等基 

于TCP/IP协议的子库。因此,Java应用 

程序可凭惜U RL打开并访问网络上的对 

象,其访问方式与访问本地文件系统几乎 

完全相同。为分布环境尤其是Internet提 

否过分以及试图改变一个对象的类型。 

2.Java与网络通信 

Java是一门适合于分布式计算环境、 

尤其是Internet程序设计的语言。这不仅 

仅在于Java具有很好的安全性和可移植 

性,还在于Java为Internet编程提供了丰 

富的网络类库支持。利用这些网络类库, 

可以轻松编写多种类型的网络通信程序。 

般的TCP/IP网络数据通信主要可 

分为两种不同的通信协议,一种是面向连 

接的通信协议,这种传输方式在数据传送 

本文阐述了 ava以其独有的 与网络紧密结 

合确姥‘苦、&央拄编写蓉 ≯跌务器棱式魄豫 

络通镶瞧再 的菠 

J a V 网络通信;程序 

1、Java语言的特点 

Java语言的特点主要表现在:简单、 

面向对象、多线程、分布性、体系结构 

中立、健壮性和安全性等方面。 

(1)简单性 

Java最初是为对家用电器进行集成控 

制而设计的一种语言,因此它必须简单明 

了。Java的风格类似于C}+,因而C++ 

程序员是非常熟悉的。从某种意义上讲, 

Java语言是C及C++语言的一个变种,因 

此,C++程序员可以很快就掌握Java编 

程技术。Java摒弃了C++中容易引发程 

序错误的地方,如指针和内存管理。Java 

前必须先在两端建立连接,并且所传送的 

数据不会丢失,这种方式称为TCP,也称 

为Stream;另一种方式则是面向非连接方 

式,即传送数据前,并不必先建立连接,而 

是将所要传送的数据包成一个分组再传送, 

使用这种方式,由于没有额外的控制,所以 

传送的数据可能丢掉。这种方式称为UDP, 

也称为Datagram。 

TCP和U DP都是传输层上的通信协 

议,也是一股TCP/IP网络上最常使用的 

通信协议,且各有其用途, ̄NTCP较可靠, 

供动态内容无疑是一项非常宏伟的任务, 

但Java的语法特性却使我们很容易地实现 

这项目标。 

(5)体系结构中立 

为了建立Java作为网络的一个整体, 

Java将它的程序编译成一种结构中立的中 

间文件格式。只要有Java运行系统的机器 

都能执行这种中间代码。现在,Java运 

行系统有Solaris2.4(SPARC),Win32系统 

(Windows 95和Windows NT)等。Java 

源程序被编译成一种高层次的与机器无关 

的byte code格式语言,这种语言被设计 

在虚拟机上运行,由机器相关的运行调试 

器实现执行。 

(6)健壮性 

提供了丰富的类库。 

(2)面向对象 

面向对象可以说是Java最重要的特 

性。Java语言的设计完全是面向对象的, 

它不支持类似C语言那样的面向过程的程 

序设计技术。Java支持静态和动态风格的 

代码继承及重用。单从面向对象的特性来 

所以用在不允许数据丢失的应用上。而 

UDP则较多应用于处理速度要求较快、数 

据传输可靠性要求不是很高的应用上,如 

数据广播。在Java中也支持这两种不同的 

协议,对它们的支持是以类库的形式提供 

的。通过Socket和ServerSocket类提供了 

对TCP通信的支持,对于UDP通信则提供 

了DatagramSocket ̄0 DatagramPacket类。 

它们都包含在Java.net类库中。本文中,我 

们主要探讨TCP通信程序的写法,而UDP 

通信程序的写法与此类似。 

Java致力于检查程序在编译和运行时 

的错误。类型检查帮助检查出许多开发早 

期出现的错误。Java自己操纵内存减少了 

内存出错的可能性。Java还实现了真数 

组,避免了覆盖数据的可能。这些功能特 

征大大缩短了开发Java应用程序的周期。 

Java提供Null指针检测数组边界检测异常 

出口字节代码校验。 

(6)安全性 

看,Java类似于SmallTalk,但其它特 

性、尤其是适用于分布式计算环境的特性 

远远超越了SmallTalk。 

(3)多线程 

Java提供的多线程功能使得在一个程 

序里可同时执行多个小任务。线程(有时 

也称小进程)是一个大进程里分出来的小 

的独立的进程。因为Java实现的多线程技 

术,所以比C和C++更键壮。多线程带 

来的更大的好处是更好的交互性能和实时 

控制性能。当然实时控制性能还取决于系 

统本身(UNIX,Windows,Macintos等),在 

开发难易程度和性能上都比单线程要好。 

3.网络通信程序的编写 

网络上的两个程序通过一个双向的通 

讯连接实现数据的交换,这个双向链路的 

端称为一个Socket。Socket通常用来实 

现客户方和服务方的连接。S O Ck et是 

TCP/IP协议的一个十分流行的编程界面, 

个Socket由一个1P地址和一个端口号唯 

确定。在Java环境下,Socket编程主 

要是指基于TCP/IP协议的网络编程。我 

J a v a的安全性可从两个方面得到保 

证。一方面,用于网络、分布环境下的Java 

必须要防止病毒的入侵,Java不支持指针, 

切对内存的访问都必须通过对象的实例 

变量来实现,这样就防止了程序员使用欺 

骗手段访问对象的私有成员,同时也避免 

们可以将要通信的两端分成服务器和客户 

机端,即建立所谓的客户机/ 服务器编程 

任何用过当前浏览器的人,都感觉为调一 

模式。在服务器端必须先建立一个 

了指针操作中容易产生的错误。另一方面, 

ServerSocket对象,然后等待客户机端的访 

当Java用来创建浏览器时,语言功能和一 

问。而在客户机端,则是建立一个Socket 

ll0 

维普资讯

对象直接跟服务器端连接,如果连接建立 

成功,则服务器端便会产生一个Socket对 

DataInputStream(System.in); 

socket); 

象,然后我们就可以利用这个Socket对象 

跟客户机端的Socket对象沟通了。此时在 

服务器和客户机之间建立了一条可靠连 

接,客户机和服务器可以在这条连接上町 

靠的传送数据。客户机发出请求,服务器 

监听来自客户机的请求,并为客户机提供 

相应的服务。 

try{ 

data—KeyInput.readLine0; 

1 

: 

1 

J 

 1

 J

1 

J 

j 

catch(IOException e): 

retum; 

1 

j 

在上面的程序中,我们使用了多线程 

机制。Javaserver和servie对象本身都是 c

个线程。Javaserver对象首先创建一个 

f(data.equals(”quit”))System. 

exit(1); 

j 

1 

基于上述原理,我们编写了简 的客 

户机/服务器模式的网络通信程序。在服 

务器端,服务器监听客户机的请求,为每个 

客户机请求建立Socket连接,从而为客户 

机提供服务。而所提供的服务只是读取来 

自客户机的一行文本,并把它发回给客户 

机。以下是服务器端的通信程序。 

Import Java.io. : 

ServerSocket对象,并启动线程的运行。 

它的FUn()方法用于监听来自客户机的连 

接。每当有一个新的客户机连接时, 

SreverSocket就会创建一个新的Socket类实 

例,并创建一个service对象,同时启动 

这个对象的线程。每个service对象用于完 

成与客户机通信、提供服务的任务。这样 

服务器可以同时与多个客户机连接,同时 

为多个客户机提供服务。当从标准输入中 

接收列quit字符串时,服务器退出运行。 

在客户机端,首先创建一个Socket对 

象,用于与服务器通信。它从标准输入中读 

j 

class service extends Thread: 

String data: 

DatalnputStream Inputs; 

PrintStream Outputs; 

Socket Client; 

PUb¨C Se rvicefS0Cket 

import Java.net. : 

class Javaserver extends Thread 

f 

ClientSocket): 

Client=ClientSocket; 

try 

f 

ServerSocket server; 

Inputs=new DataInputStream 

public Javaserver(): 

try 

(Client.getlnputStream()); 

Outputs=new PrintStream 

取数据,把这些数据传给服务器,再从服务 

器读取应答信息,然后把这些应答信息写 

到标准输出。当读取了8行的数据后,客户 

机程序将退出运行。以下是客户机端的通 

信程序。 

import Java.io. : 

ersver=new SeverSorcket(600); 

(Client.getOutputStream()); 

1 

} 

catch(IOException e): 

System.out.println(’Cannot 

create Server”); 

j 

catch(IOException e) 

System.out.println(1 lCannot 

Com ̄ect with Client 

return; 

} 

mpiort Java.net. : 

; 

class Javaclient: 

public static void main(String 

args[]): 

String data; 

Socket Client; 

DataInputStream Inputs; 

DataInputStream KeyS; 

System.exit(0); 

} 

System.out.prir1t11 Now socket 

J 

tis.hsartt(); 

} 

e1swer will Start’); 

j 

this.start(); 

1 

 f

public void run(){ 

try i 

PrintStream OutputS; 

public void run(): 

try 

while(true)i 

data=Inputs.readLine(); 

if([1ata一-=nul1)break; 

else  f

int i==-:0; 

try{ 

Client=new Socketf¨172.17.3. 

while(true){ 

Socket cEent=server.accept(); 

ersvice ss:new service(client); 

1 

J 

2”,6o0); 

Inputs=new 

DataInputStream(Client. 

Outputs.pN ̄tln(data); 

System.out. nt111(”From Client: 

”+da_[a): 

J 

I 

j 

getInputStream()); 

Outputs—new PrintStream 

catch(IOException e) 

System.out.println(“cannot 

provide servie㈢;c 

System exit(1); 

error”); 

public static void main(String 

1 

 j

(Client.getOutputStream()); 

KeyS=new DataInputStream 

j 

catch(IOException e): 

System.out.println Read Data 

(System.in); 

1 

j 

catch(IOException e); 

System.out.println( Cannot 

try; 

Connect 

args[]) 

String data; 

DataInputStream KeyInput; 

Client.close(); 

catch(IOException e) 

= n e w 

with Ser ̄-er”); 

return; 

new Javaserver(); 

K e Y I n P U t 

System.out.prin ̄(”Cannot dose 

下转第1 1 3页。 

111 

维普资讯

立一个系统管理员,专门负责服驽器的安 

全和工作站的设置及系统维护工作。在技 

上接第1 09页 

上接第11 1页 

术 ,也町采有 一些网络版的反病毒软 

件,使服务器具有自动防护功能, ‘旦发 

现病毒或错误.立即向系统管理员提 l警 

告。 

度,拓展了实时系统的应用范围。Linux 

灰时性能的逐步完善,必: 大火促进嵌入 

式Linux仕 业控制、后PC时代信息电 

器等领域的广‘泛应用,应用的需要也会进 

步促进大量新型控制算法的出现。 

try: 

while(i<8) 

data=KeyS.readLine(); 

5.2数据库的安全性。每个数据库含 

有一张存取控制表,用来决定谁可以打丌 

数据库每个用户对数据库可做何各类型的 

改变。在开发图书馆办公自动化软件时可 

为人力资源库设置相应的使用权限。 

5.3文档级的安全性。例如,有些文 

档属“三密”文件,为防止泄露,必须 

为其设置使用权限,而有些文档是私有 

的,并非人人都可以阅读,叮为它设置密 

码。 

OutputS.println(data); 

System.out.pfintM(”ECHO From 

瞻融 0 囊 0 。0 

Server:’+Inputs.readLine0); 

i++: 

) 

…Yu—Chung Wang and Kwei-Jay Lin, 

Implementing a General P ̄eaJ--Time Scheduling 

Framework in the ̄ED--Linux P ̄eal-Tfe Kernel,m 

IEEE geaI-Time Systems Symposium.1 999 

 1

catch(10Exception e): 

System.out.println( IOException 

l2l KartS.Gopalan,geal-Tie Sumpport in 

General Purpose Operating Systems,Tech P ̄eport. 

2001 

Happened ); 

 {

6.努力提高办公人员的素质,适应 

办公自动化需要 

建立图书馆办公自动化系统,人是关 

[5]c,M.Krbhna,Kang G,Shin,P, ̄eal-time 

Systems,Tsinghua Press,2001 

try 

System.out.println(。 Now will 

[4】h%i;p://www.rtlinux.org/or ttp://fsmb.bs. 

corn/ 

f51 Michael Barabanov.A Linux.based ReaJ- 

Time Operating System,A Master Thesis,New 

end this program”); 

键的因素,因为他将是实际的操作者与控 

制者。因此培养高素质的办公人员,有助 

于图书馆的办公自动化系统更快,更顺利 

地实现。对于习惯丁传统办公方式的图书 

馆工作人员来说,突然转变到基于计算机 

通信的无纸办公,还需要一定的过程,这 

包括对整个图书馆办公自动化系统的了 

解、认识、使用,因此有必要对实际操 

作人员进行专门地培训。 

C1lent.close(); 

catch(IOException e){ 

System.out.println(”system 

cal ̄]Ot 

exiMco Institute of Mining and Technobgy, 

Socorro,New Mexico.1 997 

[6] tp://www.ittc.ku.edu/kurt/ 

[7]Balaji Srinivasan,A Firm P ̄eal-Tirne System 

implementation usi喏Commercial Off一丁№一 eJf 

Hardware a加Free Software./vlaster T sjs. 

Department of Electrical Engineering and Computer 

Science,University of Kansas.Feb 1 998 

close socket。); 

1 

} 

7.小结 

现如令的社会,办公自动化已成为机 

关和企事业单位现代化管理的必然趋势。 

住目前政府机构及企事业单位大力改革的 

[8]http:// ̄nuxt.eC ̄,ud.edu/P ̄ED--Unux/ 

f91 Barabanov M.A Linux—based Real— 

4.结束语 

正如Java创始人之一James Gosling 

所言:“语言只是一种工具,而非目的。”因 

此,我们学习Java语言重要的是需将Java 

的编程方法与技术运用到实际中去。Java 

语言作为一门面向网络编程的语言,其应 

用前景非常美好,未来会更加适应互联网 

通信发展的需求,逐渐渗透到各个领域。 

time Operating Systeml D1.Master Pape r 

‘1.New Mexico Institute ofTechnology.1 997 

外部环境下,图书馆实现办公自动化也势 

在必行。它对提高图书馆各部门的办公效 

率,提高决策的科学性、正确性,提高综合 

管理水平和竞争能力都有着十分重要的意 

义。因此,实现图书馆办公自动化,已成为 

图书馆领导和相关信息部门的主要工作。 

06 

[1 0]Bach M J.The Design.f the UN1X 

Operating System.北京:机械工业出版社. 

2000.-——04 

[1 1]P ̄nenbaum A S,Woodhuli A S.Operating 

Systems Design and Iplmementation北京:电子 

工业出版社.2001—04 

盼 噙_献 _l lll 0 

…肖曼.Java ̄序设计教程.北京:中国电 

力出版社.2005 

…李善平,刘文峰.Linux内核2.4版源代码 

参萋翔 ・ ll 00_ l

分析大全.北京:机械工、业出版社. 

2002—01 

[1]、谭伟贤肖振文.现代办公新技术、管 

理:电子工业出版社.2002 

[2]赵炯.Linux内核分析.机械工业出版.2005 

蒋静,徐志伟.操作系统原理・技术与 

编程.机械工业出版社.2004--1—1 

[2]Bruce Ecke1.JaVa编程思想(第4版).北京: 

机械工业出版社,2007 

[2]、闰青泉,中外档案编目规则探讨,数字 

图书馆论坛.2005,5 

同warton,Java ̄g线程编程初步.电脑报. 

2004 4 10 

[3]、季淑娟.图书馆的过程系统研究.图书 

情报工作.2006.4,35--47 

刘虹.性别:女,出生年月:1 968年.职 

称:馆员。 

煽鳓劬 00毫 000 

丁度南(1982一).男 广东汕头人,硕士,主要研 

究领域为嵌入式与分布式系统: 

张立臣(1 952一),男 博士 教授 主要研究领域 

为分布式数据库与实时操作系统 Petri网理 

论及应用 

徐敏(1 979一)l女 山东潍坊人 山东大学 

信息科学与工程学院2006级在读工程硕士. 

现为潍坊职业学院信息工程系教师 主要研 

究方向:计算机网络编程。 

l13 


发布者:admin,转转请注明出处:http://www.yc00.com/news/1712051761a1997144.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信