Java(网络编程).ppt

上传人:qwe****56 文档编号:70012377 上传时间:2023-01-14 格式:PPT 页数:57 大小:275KB
返回 下载 相关 举报
Java(网络编程).ppt_第1页
第1页 / 共57页
Java(网络编程).ppt_第2页
第2页 / 共57页
点击查看更多>>
资源描述

《Java(网络编程).ppt》由会员分享,可在线阅读,更多相关《Java(网络编程).ppt(57页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第第11章章 网络编程网络编程教学目的要求1.了解网络编程的基本知识;了解网络编程的基本知识;2.掌握使用掌握使用URL获取网络资源的方法;获取网络资源的方法;3.熟练掌握基于熟练掌握基于TCP的网络通信技术。的网络通信技术。11.1 网络编程的基本概念网络编程的基本概念Java作作为为一一种种与与平平台台无无关关的的语语言言,从从一一出出现现就就与与网网络络有有关关极极其其密密切切的的关关系系,因因为为Java写写的的程程序序可可以以在在网网络络上上直直接接运运行行,使使用用Java,只只需需编编写写简简单单的的代代码码就就能能实实现现强强大大的的网网络络功功能能。下下面面将将介介绍绍几几个

2、个与与Java网络编程有关的概念。网络编程有关的概念。TCP/IP协议概述协议概述在在编编写写网网络络通通信信的的Java程程序序时时,是是在在应应用用层层编编写写程程序序的的,所所以以根根本本不不必必关关心心TCP/IP的的层层次次,只只要要用用包包中中的的类类即即可可,这这些些类类提提供供了了系系统统无无关关的的网网络络通通信信服服务务。但但是是即即使使如如此此,也也需了解一下需了解一下TCP/IP协议。协议。确确切切地地说说,TCP/IP协协议议是是一一组组包包括括TCP协协议议和和IP协协议议、UDP(User Datagram Protocol)协协议议、ICMP(Internet

3、Control Message Protocol)协协议议和和其其他他一一些些协协议议的的协协议议族族。TCP/IP通通信信协协议议采采用用了了4层层的的层层级级结结构构,每每一一层层都都使使用用它它的的下下一一层层所所提提供供的的网网络络来来完完成成自自己己的需求。这的需求。这4层分别为:层分别为:应应用用层层:应应用用程程序序间间沟沟通通的的层层,如如简简单单电电子子邮邮件件传传输输(SMTP)、文文件件传传输输协协议议(FTP)、网网络远程访问协议(络远程访问协议(Telnet)等。)等。传传输输层层:在在此此层层中中,它它提提供供了了节节点点间间的的数数据据传传送送服服务务,如如传传输

4、输控控制制协协议议(TCP)、用用户户数数据据报报协协议议(UDP)等等,TCP和和UDP给给数数据据包包加加入入传传输输数数据据并并把把它它传传输输到到下下一一层层中中,这这一一层层负负责责传送数据,并且确定数据已被送达并接收。传送数据,并且确定数据已被送达并接收。互互连连网网络络层层:负负责责提提供供基基本本的的数数据据封封包包传传送送功功能能,让让每每一一块块数数据据包包都都能能够够到到达达目目的的主主机机(但但不检查是否被正确接收),如网际协议(不检查是否被正确接收),如网际协议(IP)。)。网网络络接接口口层层:对对实实际际的的网网络络媒媒体体的的管管理理,定定义义如如何何使使用用实

5、实际际网网络络(如如Ethernet、Serial Line等等)来传送数据。来传送数据。下面简单介绍下面简单介绍TCP/IP中的几个主要协议的功能。中的几个主要协议的功能。1.IP协议协议网际协议网际协议IP是是TCP/IP的心脏,也是网络层中最的心脏,也是网络层中最重要的协议。重要的协议。IP层层接接收收由由更更低低层层(网网络络接接口口层层例例如如以以太太网网设设备备驱驱动动程程序序)发发来来的的数数据据包包,并并把把该该数数据据包包发发送送到到更更高高层层TCP或或UDP层层;相相反反,IP层层也也把把从从TCP或或UDP层层接接收收来来的的数数据据包包传传送送到到更更低低层层。IP数

6、数据据包包是是不不可可靠靠的的,因因为为IP并并没没有有做做任任何何事事情情来来确确认认数数据据包包是是按按顺顺序序发发送送的的或或者者没没有有被被破破坏坏。IP数数据据包包中中含含有有发发送送它它的的主主机机的的地地址址(源源地地址址)和和接接收收它它的的主主机机的的地地址址(目目的的地地址址)。2.TCP协议协议TCP是是Tranfer Control Protocol的的简简称称,是是一一种种面面向向连连接接的的保保证证可可靠靠传传输输的的协协议议。通通过过TCP协协议议传传输输,得得到到的的是是一一个个顺顺序序的无差错的数据流。的无差错的数据流。如如果果IP数数据据包包中中有有已已经经

7、封封好好的的TCP数数据据包包,那那么么IP将将把把它它们们向向“上上”传传送送到到TCP层层。TCP将将包包排排序序并并进进行行错错误误检检查查,同同时时实实现现虚虚电电路路间间的的连连接接。TCP数数据据包包中中包包括括序序号号和和确确认认,所所以以未未按按照照顺顺序序收收到到的的包包可可以以被被排排序序,而而损损坏坏的的包包可可以以被被重传。重传。TCP是是可可靠靠的的、面面向向连连接接的的、连连续续的的、流流的的协协议议。当当应应用用程程序序需需要要一一个个可可靠靠的的、点点对对点点的的连连接接进进行行通通信信时时,就就用用TCP协协议议。像像HTTP、FTP、Telnet等等应应用用

8、程程序序都都需需要要一一个个可可靠靠的的通通信信媒媒介介。数数据据在在网网络络上上发发送送和和接接收收的的次次序序对对于于能能否否成成功功的的应应用用HTTP读读取取URL资资源源是是很很重重要要的的,数数据据的的接接收收次次序序与与发发送送的的次次序序必必须须一一样样,否则就会收到一些错误的信息。否则就会收到一些错误的信息。对对于于许许多多应应用用程程序序来来说说,这这种种可可靠靠性性的的保保证证是是能能否否成成功功传传输输信信息息的的关关键键。然然而而,这这种种可可靠靠的的传传输输方方式式并并非非对对所所有有的的应应用用程程序序都都适适合合。事事实实上上,TCP需需要要花花费费大大量量的的

9、时时间间和和带带宽宽来来保保证证可可靠传输,有一些场合可靠传输并不是必须的。靠传输,有一些场合可靠传输并不是必须的。3.UDP协议协议UDP是是User Datagram Protocol(用用户户数数据据报报协协议议)的的简简称称,是是一一种种无无连连接接的的、不不可可靠靠的的协协议议,每每个个数数据据报报都都是是一一个个独独立立的的信信息息,包包括括完完整整的的源源地地址址或或目目的的地地址址,它它在在网网络络上上以以任任何何可可能能的的路路径径传传往往目目的的地地,因因此此能能否否到到达达目目的的地地,到到达达目目的的地地的的时时间间以以及及内内容容的的正正确确性性都都是是不不能能被被保

10、保证证的的。但但是是这这个个协协议议的的速速度度却却比比较较快快,所所以以在在现现在在网网络络基基础础设设施施越越来来越越好好的的情情况况下下,使使用用UDP协议的应用程序也越来越多了。协议的应用程序也越来越多了。在在Java的的类类库库中中,URL、URLConnection、Socket、SocketServer类类 都都是是 利利 用用 TCP在在 网网 络络 上上 通通 信信 的的;而而DatagramPacket和和DatagramServer类类是是使使用用UDP的的。本本章章将将主主要要讲讲述述利利用用TCP协协议议进进行行通通信的各个类。信的各个类。Socket套接字套接字 网

11、网络络上上的的两两个个程程序序通通过过一一个个双双向向的的通通信信连连接接实实现现数数据据的的交交换换,这这个个双双向向链链路路的的一一端端称称为为一一个个Socket,即即Socket是是面面向向客客户户/服服务务器器模模型型设设计计的的,通通常常用用Socket来来实实现现客客户户方方和和服服务务方方的的连连接接。客客户户程程序序可可以以向向Socket写写请请求求,服服务务器器将将处处理理此此请请求求,然然后后通通过过Socket将结果返回给用户。将结果返回给用户。Socket通通信信机机制制提提供供了了两两种种通通信信方方式式:有有连连接接和和无无连连接接方方式式,分分别别面面向向不不

12、同同的的应应用用需需求求。使使用用有有连连接接方方式式时时,通通信信链链路路提提供供了了可可靠靠的的,全全双双工工的的字字节节流流服服务务。在在该该方方式式下下,通通信信双双方方必必须须创创建建一一个个连连接接过过程程并并建建立立一一条条通通信信链链路路,以以后后的的网网络络通通信信操操作作完完全全在在这这一一对对进进程程之之间间进进行行,通通信信完完毕毕则则关关闭闭此此连连接接过过程程。使使用用无无连连接接方方式式时时其其系系统统开开销销比比有有连连接接方方式式小小,但但通通信信链链路路提提供供了了不不可可靠靠的的数数据据报报服服务务,不不能能保保证证信信源源所所传传输输的的数数据据一一定定

13、能能够够到到达达信信宿宿。在在该该方方式式下下,通通信信双双方方不不必必创创建建一一个个连连接接过过程程和和建建立立一一条条通通信信链链路路,网网络络通通信信操操作作在不同的主机和进程之间转发进行。在不同的主机和进程之间转发进行。端口端口 计计算算机机与与网网络络一一般般只只有有一一个个单单独独的的物物理理连连接接,所所有有的的数数据据最最终终都都要要通通过过连连接接到到达达一一个个指指定定的的计计算算机机。然然而而,数数据据是是传传向向运运行行在在计计算算机机上上的的不不同同应应用用程程序序的的,计计算算机机需需要要知知道道数数据据传传向向哪哪个应用程序,这就要用到端口。个应用程序,这就要用

14、到端口。数数据据在在网网络络上上传传送送是是与与地地址址信信息息的的传传送送一一起起进进行行的的,地地址址信信息息表表明明了了数数据据要要传传向向的的计计算算机机和和端端口口。计计算算机机是是一一个个32位位的的IP地地址址标标识识,IP用用来来把把数数据据传传送送到到网网络络上上的的目目的的计计算算机机上上。端端口口是是用用一一个个16位位的的数数来来表表示示,TCP和和UDP都都是是通通过这个端口来指明数据要发往的应用程序。过这个端口来指明数据要发往的应用程序。在在面面向向连连接接的的通通信信中中,一一个个应应用用程程序序与与另另一一个个应应用用程程序序的的连连接接的的建建立立是是通通过过

15、把把一一个个端端口口号号绑绑定定在在套套接接字字上上实实现现的的。这这样样就就把把应应用用程程序序注注册册在在操操作作系系统统中中,从从指指定定的的端端口口接接收收所所有有的的数数据据。运运行行在在同同一一台台计计算算机机上上的的两两个个应应用用程程序序不不可可能能绑绑定定在在同同一一个个端端口口上上,如如果果应应用用程程序序试试图图绑绑定定在在一一个个已已经经在在使使用用中中的的端端口口上上将将导导致致失失败败。在在面面向向消消息息的的通通信信中中,数数据据报报包包含含了了目目的的地地的的端端口口号号。TCP和和UDP协协议议是是利利用用端端口口把把流流入入的的数数据映射到运行的计算机上的特

16、定进程。据映射到运行的计算机上的特定进程。端端口口号号是是从从0到到65535(因因为为端端口口是是用用16位位二二进进制制数数表表示示),其其中中01023的的端端口口号号被被系系统统保保留留,它它们们被被许许多多知知名名的的服服务务占占据据,如如HTTP、FTP和和其其他他的的系系统统服服务务,应应用用程程序序不不能能绑绑定定这这些端口。些端口。URL URL(Uniform Resource Locator)是是统统一一资资源源定定位位符符的的简简称称,它它表表明明了了Internet上上某某一一资资源源的的地地址址。通通过过URL,可可以以访访问问Internet和和WWW。浏浏览览器

17、器通通过过解解析析给给定定的的URL可可以以在在网网络络上上查查找找相相应应的的文文件件或或网网络络资资源源。IP地地址址定定位位了了在在互互连连网网上上的的一一台台计计算算机机,端端口口定定义义了了为为这这台台计计算算机机上上提提供供的的服服务务。一一个个URL的的语语法法格格式式如如下:下::/dir/filenameprotocol定定义义了了传传输输协协议议,如如http、ftp、gopher、file等等等等;hostname为为主主机机域域名名或或IP地地址址;port为为服服务务端端口口号号;dir和和filename分分别别为为服服务务器器上上的的目目录录和和文文件件名名。UR

18、L具具有有强强大大的的功功能能,它它提提供供了了统统一一的的方方法法来来存存储储与与单单个个类类中中的的一一个个特特定定资资源源进进行行通通信信所所需需的的全全部部信信息息;完完成成所所有有socket的的创创建建、握握手手协协议议以以及及通通过过HTTP检检索索资源所需的解释程序。资源所需的解释程序。Java语语言言提提供供了了类类.URL来来实实现现利利用用URL进进行行网网络络编编程程。该该类类具具有有4个个构构造造器器及及其其相相应应的的方方法法。利利用用构构造造器器创创建建了了URL对对象象后后,Java提提供供了了2种种方方式式来来读读取取网网络络数数据据,一一种种是是通通过过UR

19、L对对象象及及相相关关方方法法直直接接得得到到相相关关的的网网络络 信信 息息,首首 先先 创创 建建 一一 个个 URL对对 象象,然然 后后 使使 用用 URL的的 方方 法法 openStream()与与指指定定的的URL建建立立连连接接并并得得到到一一个个输输入入流流InputStream类类的的对对象象,在在此此基基础础上上可可进进一一步步生生成成其其它它的的输输入入流流对对象象实实例例,进进而而对对信信息息进进行行操操作作;这这种种方方法法简简单单直直接接,但但缺缺乏乏灵灵活活性性,并并且且只只能能够够读读信信息息,因因为为许许多多Web提提供供了了双双向向对对话话的的功功能能,因

20、因而而就就限限制制了了这这种种方方法法的的应应用用。另另一一种种是是通通过过方方法法openConnection()生生成成相相应应的的URLConnection对对象象,从从而而得得到到InputStream输输入入流流或或InputStream对对象象,进进而而对对其其进进行行读读写写操操作作。这这种种方方法法应应用用相相当当广广泛泛,如如向向服服务务器器的的CGI程程序序发发送送一一些些数数据据,首首先先必必须须与与URL建建立立连连接接,然然后后对对其其进进行行读读写写操操作作,利利用用URLConnection类类提提供供的的公公用用方方法法除除了了可可以以简简单单地地访访问问网网络

21、络资资源源外外,还还可可以以访访问问某某些些协协议议提提供供的的有有关关资资源源,如如资资源源的的MIME类类型型(Multimedia Internet Mail Extensions,多多用用途途Internet邮件扩展)、资源的更改时间等。邮件扩展)、资源的更改时间等。11.2 使用使用URL获取网络资源获取网络资源 URL类类 在在Java的的包包中中,包包含含一一些些用用于于网网络络编编程程的的类类,其其中中URL类类可可以以很很方方便便地地利利用用URL地地址在址在Internet上进行网络通信并获取网络资源。上进行网络通信并获取网络资源。URL对对象象是是只只写写一一次次的的对对

22、象象,一一旦旦创创建建了了一一个个URL对对象象,就就不不能能再再改改变变它它的的任任何何属属性性(协协议议、主主机机名名、文文件件名名和和端端口口号号)。为为了了表表示示URL,中中实实现现了了类类URL。可可以以通通过过下下面面的的构构造方法来初始化一个造方法来初始化一个URL对象:对象:构造方法一:构造方法一:public URL(String spec);该该构构造造方方法法通通过过一一个个表表示示URL地地址址的的字字符符串串可可以以构构造造一个一个URL对象。例如:对象。例如:URL urlBase=new URL(http:/ URL(URL context,String spe

23、c);该该构构造造方方法法通通过过绝绝对对URL和和相相对对URL构构造造一一个个URL对对象。例如:象。例如:URL com163=new URL(http:/ index163=new URL(com163,index.html);构构造造方方法法三三:public URL(String protocol,String host,String file);例如:例如:URL com163=new URL(http,/pages/net.html);构造方法四:构造方法四:public URL(String protocol,String host,int port,String file)

24、;例如:例如:URL gamelan=new URL(http,80,Pages/net.html);注注意意:类类URL的的构构造造方方法法都都声声明明抛抛弃弃非非运运行行时时异异常常(MalformedURLException),因因此此生生成成URL对对象象时时,必必须须要要对对这这一一异异常常进进行行处处理理,通通常是用常是用try-catch语句进行捕获。格式如下:语句进行捕获。格式如下:tryURL myURL=new URL()catch(MalformedURLException e)URL类提供了多个方法进行类提供了多个方法进行URL对象的查询,可以使对象的查询,可以使用这些

25、方法来获取用这些方法来获取URL的属性信息,其中常用的方法的属性信息,其中常用的方法有:有:getProtocol():返回:返回URL的协议标识部分;的协议标识部分;getHost():返回:返回URL的主机名部分;的主机名部分;getPort():将端口号作为整数返回,如没有设置则返回:将端口号作为整数返回,如没有设置则返回-1;getPath():返回该:返回该URL的路径;的路径;getFile():返回:返回URL的文件名部分;的文件名部分;getRef():返回:返回URL的引用部分。的引用部分。当当然然,并并不不是是所所有有的的URL地地址址都都包包括括这这些些组组成成部部分分。

26、URL类类提提供供这这些些方方法法是是因因为为HTTP的的URL包包括括这这些些部部分分,而而HTTP的的URL差差不不多多是是最最通通用用的的URL。从从某某种种程程序序上上讲讲,URL类类是是以以HTTP为为中中心心的的。无无论论使使用用什什么么构构造造函函数数来来创创建建URL对对象象,都都可可以以使使用用这这些些方方法法来来获获取取该该URL对对象象的的信信息息。例例11.1描描述述了了URL类类的的基基本本用法。用法。例例 URL类的基本用法举例。类的基本用法举例。import .URL;/引入引入URL类类import .MalformedURLException;/引入引入包中的

27、异常类包中的异常类class URLDemo public static void main(String args)URL sampleURL=null;try sampleURL=new URL(http:/:80/index.html#down);/创建创建URL对象对象 catch(MalformedURLException e)/异常处理异常处理 e.printStackTrace();/显示显示sampleURL对象的各属性值对象的各属性值 System.out.println(协议:协议:+sampleURL.getProtocol();System.out.println(主机

28、名:主机名:+sampleURL.getHost();System.out.println(端口号:端口号:+sampleURL.getPort();System.out.println(文件名:文件名:+sampleURL.getFile();System.out.println(锚点:锚点:+sampleURL.getRef();这是一个这是一个Java应用程序。运行结果输出应用程序。运行结果输出URL地址的各地址的各属性值,因为属性值,因为URL没有参考点,输出为没有参考点,输出为null。运行结果。运行结果为:为:协议:协议:http主机名:主机名:端口号:端口号:80文件名:文件名:

29、/index.html锚点:锚点:down获取图像获取图像 Java Applet可可以以直直接接从从网网络络上上结结点点获获取取图图像像并并显显示示出出来来。为为了了了了解解其其编编程程方方法法和和从从本本地地显显示示图图像像的的编编程程有有何何不不同同,先先不不考考虑虑网网络络功功能能,来来看一个以前学习过的简单的图像显示的例子:看一个以前学习过的简单的图像显示的例子:例例11.2 获取并显示图像举例。获取并显示图像举例。import java.applet.*;import java.awt.*;public class Li11_02 extends Applet Image imag

30、e;public void init()image=getImage(getDocumentBase(),swan.gif);public void paint(Graphics g)g.drawImage(image,0,0,this);这这是是一一个个获获取取并并显显示示图图像像的的简简单单例例子子,在在该该例例中中,先先用用getImage()方方法法从从HTML文文档档所所在在位位置置调调用用图图像像swan.gif,并并由由此此生生成成一一个个Image类类型型的的对对象象image,然然后后用用drawImage(image,0,0,this)在在屏屏幕幕上上将将图图像像显显示出来

31、。示出来。如如果果想想从从网网络络上上其其他他结结点点获获取取图图像像,关关键键是是创创建建对对应应于于网网络络上上其其他他结结点点的的Image类类型型的的对对象象,一一旦旦获获得得Image类类型型的的对对象象,便便可可以以对对其其进进行行任何可能的图像操作。任何可能的图像操作。Java提供了提供了getImage(new URL(字符串字符串)方法可以创建对应方法可以创建对应于其他结点的图像于其他结点的图像,其使用格式可有两种:其使用格式可有两种:String url=结点结点URL;Image image;try image=getImage(new URL(url);catch(Ex

32、ception e)System.out.println(不能打开这个不能打开这个URL地址地址);或或URL imgur=null;Image image;try imgur=new URL(结点结点URL);catch(MalformedURLException e)System.out.println(不能打开这个不能打开这个URL地址地址);image=getImage(imgur);前前一一种种格格式式用用“new URL(url)”生生成成URL对对象象,并并直直接接作作 为为 getImage的的 参参 数数,后后 一一 种种 格格 式式 先先 用用“new URL(url)”生

33、生成成一一个个 URL对对象象,再再传传给给getImage。两两种种格格式式本本质质上上是是一一样样的的。两两种种格格式式中中,生生成成URL对对象象的部分都包含在的部分都包含在try/获取获取URL对象对象 catch(MalformedURLException e)/出错提示出错提示 之中。之中。例例如如要要调调用用http:/xzsd.8866.org/java/automain.jpg结结点点的的图图像像,第第一一种种格格式式的的完完整整实实现现见见例例11.3源源程程序序。第第二二种种格格式式的的完完整整实实现现见见例例11.4的的源源代代码码。说说明明:例例11.3至至11.8编

34、编译译后后需需要要把把.class文文件件和和相相应应的的.htm文文件件放放入入站站点点中中的的相相应应虚虚拟拟目目录录才才可可显显示示出出效效果果。对对于于没没有有服服务务器器或或不不能能上上网网的的读读者者,也也可可以以在在自自己己的的计计算算机机上上通通过过安安装装微微软软的的IIS或或PWS(Windows98用用户户)建建立立一一台台WEB服服务务器器进进行行测测试试,服服务务器器建建立立后后,把把上上面面的的程程序序放放入入WEB服服务务器器相相应应目目录录中中,然然后后把把例例题题中中的的域域名名换换成成http:/127.0.0.1即可。即可。例例11.3 显示网络结点上的图

35、像。显示网络结点上的图像。/Li11_03.javaimport java.applet.*;import .*;import java.awt.*;public class Li11_03 extends Applet Image image;public void init()String url=http:/xzsd.8866.org/java/automain.jpg;/请按请按实际情况更改站点的域名实际情况更改站点的域名 try image=getImage(new URL(url);catch(Exception e)public void paint(Graphics g)g.d

36、rawImage(image,0,0,this);例例11.4 显示网络结点上的图像。显示网络结点上的图像。/Li11_04.javaimport java.applet.*;import .*;import java.awt.*;public class Li11_04 extends Applet Image image;URL imgur=null;public void init()try imgur=new URL(http:/xzsd.8866.org/java/automain.jpg);/请按实请按实际情况更改站点的域名际情况更改站点的域名 catch(MalformedURL

37、Exception e)System.out.println(不能打开该不能打开该URL地址。地址。);image=getImage(imgur);public void paint(Graphics g)g.drawImage(image,0,0,this);将将上上述述两两个个程程序序分分别别以以Li11_03.java和和Li11_04.java存存盘盘并并把把URL地地址址更更改改为为自自己己服服务务器器的的图图像像文文件件的的地地址址,执执行行javac Li11_03.java和和javac Li11_04.java,将将 得得 到到 编编 译译 后后 生生 成成 的的Li11_0

38、3.class和和Li11_04.class,最最后后创创建建调调用用这这两个两个Java Applet的的HTML文档。文档。将将.class和和.htm程程 序序 放放 入入 Web服服 务务 器器(xzsd.8866.org)并并用用IE打打开开,便便可可以以看看到到Java Applet 所所显显示示的的从从网网络络上上获获得得的的图图像像了了。不不过过,在在Applet程程序序中中一一般般很很少少采采用用绝绝对对URL,因因为为出出于于安安全全性性的的考考虑虑,浏浏览览器器只只允允许许Applet访访问问与与Applet同同一一主主机机的的资资源源。如如果果采采用用绝绝对对URL,则

39、则当当Applet放放到到其其他他的的Web服服务务器上运行时,必须修改程序。器上运行时,必须修改程序。获取声音获取声音 Java从从网网络络上上获获取取声声音音文文件件并并播播放放声声音音的的编编程程方方 法法 有有 两两 种种,第第 一一 种种 是是 利利 用用 Java提提 供供 的的play(URL1)及及play(URL1,String1)直直接接播播放放网网络络 上上 的的 声声 音音 文文 件件,另另 一一 种种 是是 通通 过过getAudioClip(URL)或或getAudioClip(URL,String)先先从从网网络络上上获获取取声声音音文文件件,并并生生成成Audi

40、oClip 类类型型的的对对象象,然然后后对对该该对对象象进进行行操操作。第一种方法实现可以用如下代码:作。第一种方法实现可以用如下代码:String Audur=结点结点URL;try play(new URL(Audur);/或或play(new URL(Audur),声音文件名声音文件名);catch(Exception e)第二种方法实现可以用如下代码:第二种方法实现可以用如下代码:String Audur=结点结点URL;AudioClip loopClip;try loopClip=getAudioClip(new URL(Audur);/或或loopClip=getAudioCl

41、ip(new URL(Audur),声音文件名声音文件名);catch(Exception e)System.out.println(不能打开这个不能打开这个URL地址。地址。);上上面面的的两两种种格格式式都都是是将将生生成成URL对对象象部部分分“new URL(url)”直直接接作作为为play或或getAudioClip的的参参数数;和和前前面面处处理理图图像像的的例例子子一一样样,也也可可以以先先用用“new URL(url)”获获取取一一个个URL对对象象,再再传传 给给 play 或或 getAudioClip。如如 对对 第第 一一 种种play(URL)的格式,也可采用如下的

42、编程格式:的格式,也可采用如下的编程格式:URL Audur=null;try Audur=new URL(结点结点URL);catch(Exception e)System.out.println(不能打开该不能打开该URL地址。地址。);play(Audur);获取文档获取文档 利利 用用 Java提提 供供 的的 getAppletContext().showDoc ument()方方法法可可以以显显示示Web服服务务器器结结点点的的HTML文文档档,在在调调用用这这个个方方法法之之前前首首先先需需要要指指定定文文档档的的网网络络资源的资源的URL。其两种格式如下:。其两种格式如下:vo

43、id showDocument(URL url);void showDocument(URL url,String target);第第一一种种格格式式在在当当前前窗窗口口中中打打开开指指定定的的网网页页文文件件,第第二二种种格格式式在在指指定定的的窗窗口口中中打打开开指指定定的的网网页页文文件件。同同前前面面的的显显示示网网络络上上其其他他结结点点的的资资源源一一样样,获获取取文文档档也也有有两两种种编编程程方方式式,例例11.7和和例例11.8分别演示了分别演示了showDocument()方法的使用。方法的使用。例例11.7 获取并显示网络结点上的文档资源。获取并显示网络结点上的文档资源

44、。import java.applet.*;import java.awt.*;import .*;public class Li11_07 extends Applet URL docur=null;public void paint(Graphics g)try docur=new URL(http:/xzsd.8866.org/java/index.htm);/请根据实际情况更改站点域名请根据实际情况更改站点域名 catch(MalformedURLException e)System.out.println(不能打开该不能打开该URL地址。地址。);if(docur!=null)get

45、AppletContext().showDocument(docur);例例11.8 获取并显示网络结点上的文档资源。获取并显示网络结点上的文档资源。import java.applet.*;import java.awt.*;import .*;public class Li11_08 extends Applet URL docur=null;public void paint(Graphics g)try getAppletContext().showDocument(new URL(http:/xzsd.8866.org/java/index.htm);catch(MalformedU

46、RLException e)System.out.println(不能打开该不能打开该URL地址。地址。);/paint()上上面面的的两两个个程程序序只只是是利利用用showDocment()方方法法显显示示网网上上的的HTML文文档档,但但并并不不能能对对其其内内容容进进行行处处理理。实实际际上上,Java还还可可以以读读取取网网络络上上文件的内容,并对其内容进行处理。文件的内容,并对其内容进行处理。Java读取并处理网络上文件内容的步骤如下:读取并处理网络上文件内容的步骤如下:(1)创建一个创建一个URL类型的对象。例如:类型的对象。例如:URL fileurl=new URL(url)

47、;(2)利用利用URL类的类的openStream()方法获得对应的方法获得对应的InputStream类的对象。例如:类的对象。例如:InputStream filecon=fileurl.openStream();(3)将将 InputStream对对 象象 转转 化化 为为 DataInput Stream类的对象。例如:类的对象。例如:DataInputStream filedata=new DataInputStream(filecon);(4)读读取取内内容容并并处处理理。例例如如,对对上上面面的的filedata,可可用用filedata.readLine一一行行一一行行读读取取

48、内内容容或或用用filedata.readchar一一个个字字符符一一个个字字符符地地读读取取,读读取取后后可可使使用用java语句对其进行处理并输出。语句对其进行处理并输出。对于读取并处理网上对于读取并处理网上HTML文件内容的文件内容的程序,请读者根据以上说明步骤,自己程序,请读者根据以上说明步骤,自己编写一个小程序。编写一个小程序。11.3 使用使用TCP协议的协议的Socket编程编程 Socket套接字套接字 对对于于超超出出了了URL类类所所提提供供的的连连网网应应用用程程序序,Java提提供供了了套套接接口口类类(Socket)和和服服务务套套接接口口类类(ServerSocke

49、t)作作为为标标准准的的TCP套套接接口口编编程程技技术术,通通过过它它们们可可以以实实现现主主机机与与主主机机之之间间的的对话。对话。使使用用Socket进进行行Client/Server程程序序设设计计的的一一般般连连接接过过程程是是这这样样的的:Server端端Listen(监监听听)某某个个端端口口是是否否有有连连接接请请求求,Client端端向向Server端端发发出出Connect(连连接接)请请求求,Server端端向向Client端端发发回回Accept(接接受受)消消息息,一一个个连连接接就就建建立立起起来来了了。Server端端和和Client端端都都可可以以通通过过套套接接口口类类提供的一些方法与对方通信。提供的一些方法与对方通信。对对于于一一个个功功能能齐齐全全的的Socket,都都要要包包含含以以下下基基本本结结构构,其其工工作作过过程程包包含含以以下下四四个个基本的步骤:基本的步骤:1.创建创建Socket;2.打开连接到打开连接到Socket的输入的输入/输出流;输出流;3.按照一定的协议对按照一定的协议对Socket进行读进行读/写操作;写操作;4.关闭关闭Socket。Java在在包包中中提提供供了了两两个个类类Socket和和ServerSocket,分分别别用用来来表表示示双双向向连连接接的的客客户户端端和和服服务务端端创创建建、管管理理通

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com