《第11章 网络编程.ppt》由会员分享,可在线阅读,更多相关《第11章 网络编程.ppt(63页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第11章章 网络编程网络编程Copyright Copyright KanghuiKanghui JLU CCST JLU CCST2 211.1 网络编程的基础知识网络编程的基础知识n nIPIP地址地址地址地址:标识计算机等网络设备的网络地址,由四个:标识计算机等网络设备的网络地址,由四个:标识计算机等网络设备的网络地址,由四个:标识计算机等网络设备的网络地址,由四个8 8位的二进位的二进位的二进位的二进制数组成,中间以小数点分隔。如:制数组成,中间以小数点分隔。如:制数组成,中间以小数点分隔。如:制数组成,中间以小数点分隔。如:166.111.136.3,166.111.136.3,1
2、66.111.52.80166.111.52.80n n主机名主机名主机名主机名(hostname)(hostname):网络地址的助记名,:网络地址的助记名,:网络地址的助记名,:网络地址的助记名,按照域名进行分级管按照域名进行分级管按照域名进行分级管按照域名进行分级管理理理理。如:。如:。如:。如:;n n端口号端口号端口号端口号(port number)(port number):网络通信时同一机器上的不同进程的:网络通信时同一机器上的不同进程的:网络通信时同一机器上的不同进程的:网络通信时同一机器上的不同进程的标识。如标识。如标识。如标识。如:80,21,23,25:80,21,23,
3、25,其中,其中,其中,其中1102411024为系统保留的端口号为系统保留的端口号为系统保留的端口号为系统保留的端口号n n服务类型服务类型服务类型服务类型(service)(service):网络的各种服务。:网络的各种服务。:网络的各种服务。:网络的各种服务。httphttp,telnettelnet,ftpftp,smtpsmtpCopyright Copyright KanghuiKanghui JLU CCST JLU CCST4 411.1 网络编程的基础知识网络编程的基础知识n n在在在在InternetInternet上上上上IPIP地址地址地址地址和和和和主机名主机名主机名
4、主机名是是是是一一对应一一对应一一对应一一对应的,通过的,通过的,通过的,通过域名解析域名解析域名解析域名解析可可可可以由主机名得到机器的以由主机名得到机器的以由主机名得到机器的以由主机名得到机器的IPIP机器名更接近自然语言,容易记忆,比机器名更接近自然语言,容易记忆,比机器名更接近自然语言,容易记忆,比机器名更接近自然语言,容易记忆,比IPIP地址广泛地址广泛地址广泛地址广泛对机器而言只有对机器而言只有对机器而言只有对机器而言只有IPIP地址才是有效的标识符。地址才是有效的标识符。地址才是有效的标识符。地址才是有效的标识符。n n通常通常通常通常一台主机上总是有很多个进程需要网络资源进行网
5、络通讯一台主机上总是有很多个进程需要网络资源进行网络通讯一台主机上总是有很多个进程需要网络资源进行网络通讯一台主机上总是有很多个进程需要网络资源进行网络通讯。网络通讯的对象网络通讯的对象网络通讯的对象网络通讯的对象不是主机不是主机不是主机不是主机,而是主机中运行的,而是主机中运行的,而是主机中运行的,而是主机中运行的进程进程进程进程。n n主机名或主机名或主机名或主机名或IPIP地址无法标识多个进程。地址无法标识多个进程。地址无法标识多个进程。地址无法标识多个进程。端口号端口号端口号端口号就是为了在一台主机上提供更多的网络资源而采取的就是为了在一台主机上提供更多的网络资源而采取的就是为了在一台
6、主机上提供更多的网络资源而采取的就是为了在一台主机上提供更多的网络资源而采取的一种手段,即一种手段,即一种手段,即一种手段,即TCPTCP层提供的一种机制层提供的一种机制层提供的一种机制层提供的一种机制。只有通过只有通过只有通过只有通过主机名或主机名或主机名或主机名或IPIP地址地址地址地址和和和和端口号端口号端口号端口号的的的的组合组合组合组合才能才能才能才能唯一确定网络唯一确定网络唯一确定网络唯一确定网络通讯中的对象通讯中的对象通讯中的对象通讯中的对象:进程进程进程进程。Copyright Copyright KanghuiKanghui JLU CCST JLU CCST5 511.1
7、网络编程的基础知识网络编程的基础知识n n服务类型服务类型服务类型服务类型是在是在是在是在TCPTCP层上面的层上面的层上面的层上面的应用层的概念应用层的概念应用层的概念应用层的概念。基于基于基于基于TCP/IPTCP/IP协议可以构建出各种复杂的应用,协议可以构建出各种复杂的应用,协议可以构建出各种复杂的应用,协议可以构建出各种复杂的应用,服务类服务类服务类服务类型型型型是那些已经被是那些已经被是那些已经被是那些已经被标准化了的应用标准化了的应用标准化了的应用标准化了的应用,一般都是网络服务,一般都是网络服务,一般都是网络服务,一般都是网络服务器(软件)。器(软件)。器(软件)。器(软件)。
8、可以编写自己的基于网络的服务器,但都不能被称作可以编写自己的基于网络的服务器,但都不能被称作可以编写自己的基于网络的服务器,但都不能被称作可以编写自己的基于网络的服务器,但都不能被称作标准的服务类型。标准的服务类型。标准的服务类型。标准的服务类型。n nTCPTCP(TranferTranfer Control Protocol Control Protocol),面向连接的保证可),面向连接的保证可),面向连接的保证可),面向连接的保证可靠传输的协议。靠传输的协议。靠传输的协议。靠传输的协议。Copyright Copyright KanghuiKanghui JLU CCST JLU CC
9、ST6 611.1 网络编程的基础知识网络编程的基础知识n n通过通过通过通过TCPTCP协议传输,得到的是协议传输,得到的是协议传输,得到的是协议传输,得到的是一个顺序的无差错的数据流一个顺序的无差错的数据流一个顺序的无差错的数据流一个顺序的无差错的数据流。发送方和接收方的发送方和接收方的发送方和接收方的发送方和接收方的成对的两个成对的两个成对的两个成对的两个socket(socket(套接字套接字套接字套接字)之间必须建立之间必须建立之间必须建立之间必须建立连接连接连接连接,以便在,以便在,以便在,以便在TCPTCP协议的基础上进行通信协议的基础上进行通信协议的基础上进行通信协议的基础上进
10、行通信当一个当一个当一个当一个socket(socket(通常是通常是通常是通常是server socket)server socket)等待建立连接时,另等待建立连接时,另等待建立连接时,另等待建立连接时,另一个一个一个一个socketsocket可要求进行连接可要求进行连接可要求进行连接可要求进行连接,一旦这两个,一旦这两个,一旦这两个,一旦这两个socketsocket连接起来,连接起来,连接起来,连接起来,就可以进行双向数据传输,双方都可以发送或接收操作。就可以进行双向数据传输,双方都可以发送或接收操作。就可以进行双向数据传输,双方都可以发送或接收操作。就可以进行双向数据传输,双方都可
11、以发送或接收操作。n nUDPUDP(User(User Datagram Protocol)Datagram Protocol),用户数据报协议用户数据报协议用户数据报协议用户数据报协议,一种无连一种无连一种无连一种无连接的协议接的协议接的协议接的协议每个数据报都是一个独立的信息,包括完整的源地址或目的每个数据报都是一个独立的信息,包括完整的源地址或目的每个数据报都是一个独立的信息,包括完整的源地址或目的每个数据报都是一个独立的信息,包括完整的源地址或目的地址,在网络上以任何可能的路径传往目的地地址,在网络上以任何可能的路径传往目的地地址,在网络上以任何可能的路径传往目的地地址,在网络上以任
12、何可能的路径传往目的地无法保证能否到达目的地,到达目的地的时间以及内容的正无法保证能否到达目的地,到达目的地的时间以及内容的正无法保证能否到达目的地,到达目的地的时间以及内容的正无法保证能否到达目的地,到达目的地的时间以及内容的正确性。确性。确性。确性。Copyright Copyright KanghuiKanghui JLU CCST JLU CCST7 711.1 网络编程的基础知识网络编程的基础知识n n使用使用使用使用UDPUDP时,每个数据报中都给出了完整的地址信息,时,每个数据报中都给出了完整的地址信息,时,每个数据报中都给出了完整的地址信息,时,每个数据报中都给出了完整的地址信
13、息,无需建无需建无需建无需建立发送方和接收方的连接立发送方和接收方的连接立发送方和接收方的连接立发送方和接收方的连接。n n对于对于对于对于TCPTCP协议,由于它是一个面向连接的协议,在协议,由于它是一个面向连接的协议,在协议,由于它是一个面向连接的协议,在协议,由于它是一个面向连接的协议,在socketsocket之间之间之间之间进行数据传输之前要建立连接进行数据传输之前要建立连接进行数据传输之前要建立连接进行数据传输之前要建立连接,所以在,所以在,所以在,所以在TCPTCP中多了一个连接建中多了一个连接建中多了一个连接建中多了一个连接建立的时间。立的时间。立的时间。立的时间。n n使用使
14、用使用使用UDPUDP传输数据时,每个被传输的数据报必须限定在传输数据时,每个被传输的数据报必须限定在传输数据时,每个被传输的数据报必须限定在传输数据时,每个被传输的数据报必须限定在64KB64KB之内之内之内之内。n nTCPTCP没有限制,一旦连接建立起来,双方的没有限制,一旦连接建立起来,双方的没有限制,一旦连接建立起来,双方的没有限制,一旦连接建立起来,双方的socketsocket可按统一的可按统一的可按统一的可按统一的格式传输大量数据。格式传输大量数据。格式传输大量数据。格式传输大量数据。n nUDPUDP,不可靠的协议不可靠的协议不可靠的协议不可靠的协议,发送方所发送的数据报并不
15、一定以相同的发送方所发送的数据报并不一定以相同的发送方所发送的数据报并不一定以相同的发送方所发送的数据报并不一定以相同的次序到达接收方。次序到达接收方。次序到达接收方。次序到达接收方。n nTCPTCP,可靠的协议可靠的协议可靠的协议可靠的协议,它确保接收方完全正确地获取发送方所发送它确保接收方完全正确地获取发送方所发送它确保接收方完全正确地获取发送方所发送它确保接收方完全正确地获取发送方所发送的全部数据。的全部数据。的全部数据。的全部数据。Copyright Copyright KanghuiKanghui JLU CCST JLU CCST8 811.1 网络编程的基础知识网络编程的基础知
16、识n nTCPTCP在网络通信上有极强的生命力,例如在网络通信上有极强的生命力,例如在网络通信上有极强的生命力,例如在网络通信上有极强的生命力,例如,远程连接远程连接远程连接远程连接(TelnetTelnet)和文件传输()和文件传输()和文件传输()和文件传输(FTPFTP)都需要不定长度的数据进)都需要不定长度的数据进)都需要不定长度的数据进)都需要不定长度的数据进行可靠传输。行可靠传输。行可靠传输。行可靠传输。n n相比之下相比之下相比之下相比之下UDPUDP操作简单,而且仅需要较少的监护,通常用操作简单,而且仅需要较少的监护,通常用操作简单,而且仅需要较少的监护,通常用操作简单,而且仅
17、需要较少的监护,通常用于于于于局域网高可靠性的分散系统中局域网高可靠性的分散系统中局域网高可靠性的分散系统中局域网高可靠性的分散系统中client/serverclient/server应用程序应用程序应用程序应用程序。Copyright Copyright KanghuiKanghui JLU CCST JLU CCST9 911.1 网络编程的基础知识网络编程的基础知识n nJavaJava的网络通信分为三个层次:的网络通信分为三个层次:的网络通信分为三个层次:的网络通信分为三个层次:最高一级的网络通信最高一级的网络通信最高一级的网络通信最高一级的网络通信:从网络上下载从网络上下载从网络上
18、下载从网络上下载AppletApplet。n n客户端浏览器通过客户端浏览器通过客户端浏览器通过客户端浏览器通过HTMLHTML文件中的文件中的文件中的文件中的标记来识别标记来识别标记来识别标记来识别AppletApplet,并并并并解析解析解析解析AppletApplet的属性,通过网络获取的属性,通过网络获取的属性,通过网络获取的属性,通过网络获取AppletApplet的字节码文件。(由浏的字节码文件。(由浏的字节码文件。(由浏的字节码文件。(由浏览器提供)览器提供)览器提供)览器提供)通过类通过类通过类通过类URLURL的对象指明文件所在位置的对象指明文件所在位置的对象指明文件所在位置
19、的对象指明文件所在位置,如:从网络上下载,如:从网络上下载,如:从网络上下载,如:从网络上下载声音和图像文件。(由声音和图像文件。(由声音和图像文件。(由声音和图像文件。(由JavaJava开发环境提供)开发环境提供)开发环境提供)开发环境提供)n n声音文件和图像文件的获取是次一级的通信。声音文件和图像文件的获取是次一级的通信。声音文件和图像文件的获取是次一级的通信。声音文件和图像文件的获取是次一级的通信。最低一级的通信最低一级的通信最低一级的通信最低一级的通信:利用利用利用利用包中提供的类直接在程序包中提供的类直接在程序包中提供的类直接在程序包中提供的类直接在程序中实现网络通信中实现网络通
20、信中实现网络通信中实现网络通信。(由。(由。(由。(由JavaJava语言开发包提供)语言开发包提供)语言开发包提供)语言开发包提供)Copyright Copyright KanghuiKanghui JLU CCST JLU CCST101011.1 网络编程的基础知识网络编程的基础知识n n针对网络通信的不同层次,针对网络通信的不同层次,针对网络通信的不同层次,针对网络通信的不同层次,JavaJava提供的网络功能:提供的网络功能:提供的网络功能:提供的网络功能:InetAddressInetAddress 、URLsURLs、SocketsSockets、DatagramDatagra
21、m。URLURL面向面向面向面向应用层应用层应用层应用层,JavaJava程序通过程序通过程序通过程序通过URLURL可以直接送出或读入可以直接送出或读入可以直接送出或读入可以直接送出或读入网络上的数据。网络上的数据。网络上的数据。网络上的数据。SocketsSockets和和和和DatagramDatagram面向面向面向面向传输层传输层传输层传输层。n nSocketsSockets使用使用使用使用TCPTCP协议,使两个不同的程序通过网络的通信信道进协议,使两个不同的程序通过网络的通信信道进协议,使两个不同的程序通过网络的通信信道进协议,使两个不同的程序通过网络的通信信道进行通信。行通信
22、。行通信。行通信。n nDatagramDatagram使用使用使用使用UDPUDP协议,把数据的目的地记录在数据包中,然后协议,把数据的目的地记录在数据包中,然后协议,把数据的目的地记录在数据包中,然后协议,把数据的目的地记录在数据包中,然后直接放在网络上。直接放在网络上。直接放在网络上。直接放在网络上。InetAddressInetAddress面向面向面向面向IPIP层层层层,标识网络上的硬件资源。,标识网络上的硬件资源。,标识网络上的硬件资源。,标识网络上的硬件资源。Copyright Copyright KanghuiKanghui JLU CCST JLU CCST111111.1
23、 网络编程的基础知识网络编程的基础知识n 包中的主要的类和可能产生的例外包中的主要的类和可能产生的例外包中的主要的类和可能产生的例外包中的主要的类和可能产生的例外:面向面向面向面向IPIP层层层层的类:的类:的类:的类:InetAddressInetAddress面向面向面向面向应用层应用层应用层应用层的类:的类:的类:的类:URLURL、URLConnectionURLConnection面向面向面向面向传输层传输层传输层传输层的类:的类:的类:的类:n nTCPTCP协议相关类:协议相关类:协议相关类:协议相关类:SocketSocket、ServerSocketServerSocketn
24、 nUDPUDP协议相关类:协议相关类:协议相关类:协议相关类:DatagramPacketDatagramPacket、DatagramSocketDatagramSocket、MulticastSocketMulticastSocket可能产生的例外:可能产生的例外:可能产生的例外:可能产生的例外:n nBindExceptionBindException、ConnectExceptionConnectException、MalformedURLExceptionMalformedURLException、NoRouteToHostExceptionNoRouteToHostExcepti
25、on、ProtocolExceptionProtocolException、SocketExceptionSocketException、UnknownHostExceptionUnknownHostException、UnknownServiceExceptionUnknownServiceExceptionCopyright Copyright KanghuiKanghui JLU CCST JLU CCST121211.2 基于基于URL的网络编程的网络编程 n nURLURL(Uniform(Uniform Resource Locator),Resource Locator),统一资
26、源定位器统一资源定位器统一资源定位器统一资源定位器表示表示表示表示InternetInternet上上上上某一资源的地址某一资源的地址某一资源的地址某一资源的地址。通过通过通过通过URLURL可以访问可以访问可以访问可以访问InternetInternet上的各种网络资源上的各种网络资源上的各种网络资源上的各种网络资源,比如最常见,比如最常见,比如最常见,比如最常见的的的的WWWWWW,FTPFTP站点。站点。站点。站点。浏览器通过浏览器通过浏览器通过浏览器通过解析给定的解析给定的解析给定的解析给定的URLURL可以在网络上查找相应的文件可以在网络上查找相应的文件可以在网络上查找相应的文件可以
27、在网络上查找相应的文件或其他资源。或其他资源。或其他资源。或其他资源。n nURLURL是最为直观的一种是最为直观的一种是最为直观的一种是最为直观的一种网络定位方法网络定位方法网络定位方法网络定位方法,符合人们的语言习惯,符合人们的语言习惯,符合人们的语言习惯,符合人们的语言习惯,应用十分广泛。应用十分广泛。应用十分广泛。应用十分广泛。在目前使用最为广泛的在目前使用最为广泛的在目前使用最为广泛的在目前使用最为广泛的TCP/IPTCP/IP中对于中对于中对于中对于URLURL中主机名的解析中主机名的解析中主机名的解析中主机名的解析也是协议的一个标准,即所谓的也是协议的一个标准,即所谓的也是协议的
28、一个标准,即所谓的也是协议的一个标准,即所谓的域名解析服务域名解析服务域名解析服务域名解析服务。使用使用使用使用URLURL进行网络编程进行网络编程进行网络编程进行网络编程,不需要对协议本身有太多的了解,不需要对协议本身有太多的了解,不需要对协议本身有太多的了解,不需要对协议本身有太多的了解,功能也比较弱,相对而言是比较简单的,功能也比较弱,相对而言是比较简单的,功能也比较弱,相对而言是比较简单的,功能也比较弱,相对而言是比较简单的,Copyright Copyright KanghuiKanghui JLU CCST JLU CCST131311.2 基于基于URL的网络编程的网络编程n n
29、URLURL的组成:的组成:的组成:的组成:protocolprotocol:/:/resourceNameresourceNameProtocol,Protocol,协议名协议名协议名协议名:指明获取资源所使用的传输协议,如指明获取资源所使用的传输协议,如指明获取资源所使用的传输协议,如指明获取资源所使用的传输协议,如httphttp、ftpftp、gophergopher、filefile等,等,等,等,resourceNameresourceName,资源名资源名资源名资源名:资源的完整地址,包括资源的完整地址,包括资源的完整地址,包括资源的完整地址,包括主机名主机名主机名主机名、端端端
30、端口号口号口号口号、文件名文件名文件名文件名或或或或文件内部的一个引用文件内部的一个引用文件内部的一个引用文件内部的一个引用。例如:。例如:。例如:。例如:n n协议名协议名协议名协议名:/:/主机名主机名主机名主机名http:/http:/ n协议名协议名协议名协议名:/:/机器名机器名机器名机器名文件名文件名文件名文件名http:/http:/ n n协议名协议名协议名协议名:/:/机器名机器名机器名机器名端口号端口号端口号端口号文件名文件名文件名文件名内部引用内部引用内部引用内部引用http:/http:/:8080/Gamelan/network.htmlGamelan/network
31、.html#BOTTOMBOTTOMCopyright Copyright KanghuiKanghui JLU CCST JLU CCST141411.2 基于基于URL的网络编程的网络编程n nURLURL的创建,的创建,的创建,的创建,实现实现实现实现URLURL类类类类。通过构造方法初始化一个。通过构造方法初始化一个。通过构造方法初始化一个。通过构造方法初始化一个URLURL对象对象对象对象:通过一个表示通过一个表示通过一个表示通过一个表示URLURL地址的字符串可以构造一个地址的字符串可以构造一个地址的字符串可以构造一个地址的字符串可以构造一个URLURL对象对象对象对象n npub
32、lic public URLURL(String spec);(String spec);URLURL urlBaseurlBase=new=new URLURL(http(http:/www.:/ npublicpublic URL URL(URLURL context,String spec);context,String spec);URLURL netjlunetjlu =new URL(http:/www.=new URL(http:/ indexjluindexjlu =new URL(=new URL(netjlunetjlu,index.htmlindex.html)publi
33、c public URLURL(String(String protocol,String host,String file);protocol,String host,String file);n nnew new URLURL(http(http,/pages/,/pages/GG.html);.html);publicpublic URLURL(String(String protocol,String host,protocol,String host,intint port,String file);port,String file);n nURL URL gamelangamela
34、n=new=new URLURL(http(http,80,80,Pages/Pages/Gwork.htmlGwork.html););Copyright Copyright KanghuiKanghui JLU CCST JLU CCST151511.2 基于基于URL的网络编程的网络编程n nURLURL的构造方法声明抛出的构造方法声明抛出的构造方法声明抛出的构造方法声明抛出非运行时异常非运行时异常非运行时异常非运行时异常(MalformedURLExceptionMalformedURLException)生成生成生成生成URLURL对象对象对象对象时,必须要对这一例外进行处理,通常是
35、用时,必须要对这一例外进行处理,通常是用时,必须要对这一例外进行处理,通常是用时,必须要对这一例外进行处理,通常是用try-catchtry-catch语句进行捕获。格式如下:语句进行捕获。格式如下:语句进行捕获。格式如下:语句进行捕获。格式如下:trytry URLURL myURLmyURL=new=new URLURL()()catchcatch(MalformedURLExceptionMalformedURLException e)e)/exception handler code here/exception handler code here Copyright Copyrigh
36、t KanghuiKanghui JLU CCST JLU CCST161611.2 基于基于URL的网络编程的网络编程n n解析解析解析解析URL,URL,一个一个一个一个URLURL对象生成后,其属性不能改变对象生成后,其属性不能改变对象生成后,其属性不能改变对象生成后,其属性不能改变可以通过类可以通过类可以通过类可以通过类URLURL所提供的方法来获取这些属性:所提供的方法来获取这些属性:所提供的方法来获取这些属性:所提供的方法来获取这些属性:n npublic String public String getProtocolgetProtocol()()获取该获取该获取该获取该URLU
37、RL的协议名的协议名的协议名的协议名n npublic String public String getHostgetHost()()获取该获取该获取该获取该URLURL的主机名的主机名的主机名的主机名n npublic public intint getPortgetPort()()获取该获取该获取该获取该URLURL的端口号的端口号的端口号的端口号,若没有设置端口若没有设置端口若没有设置端口若没有设置端口,返回返回返回返回-1 1n npublic Stringpublic String getFilegetFile()()获取该获取该获取该获取该URLURL的文件名的文件名的文件名的文件
38、名n npublic String public String getRefgetRef()()获取该获取该获取该获取该URLURL在文件中的相对位置在文件中的相对位置在文件中的相对位置在文件中的相对位置n npublic String public String getQuerygetQuery()()获取该获取该获取该获取该URLURL的查询信息的查询信息的查询信息的查询信息n npublic String public String getPathgetPath()()获取该获取该获取该获取该URLURL的路径的路径的路径的路径n npublic String public String
39、 getAuthoritygetAuthority()()获取该获取该获取该获取该URLURL的权限信息的权限信息的权限信息的权限信息n npublic String public String getUserInfogetUserInfo()()获得使用者的信息获得使用者的信息获得使用者的信息获得使用者的信息n npublic String public String getRefgetRef()()获得该获得该获得该获得该URLURL的锚的锚的锚的锚 Copyright Copyright KanghuiKanghui JLU CCST JLU CCST171711.2 基于基于URL的网
40、络编程的网络编程import import .*;import.*;import java.iojava.io.*;.*;public class public class ParseURLParseURL public static void main(String public static void main(String argsargs)throwsthrows ExceptionException URLURL AurlAurl=new =new URLURL(http:/:80/docs/books/);(http:/:80/docs/books/);URLURL tutotut
41、o=new =new URLURL(Aurl,tutorial.intro.html#DOWNLOADING(Aurl,tutorial.intro.html#DOWNLOADING););System.out.println(protocolSystem.out.println(protocol=+=+tuto.getProtocoltuto.getProtocol();();System.out.println(hostSystem.out.println(host=+=+tuto.getHosttuto.getHost();();System.out.println(filenameSy
42、stem.out.println(filename=+=+tuto.getFiletuto.getFile();();System.out.println(portSystem.out.println(port=+=+tuto.getPorttuto.getPort();();System.out.println(refSystem.out.println(ref=+=+tuto.getReftuto.getRef();();System.out.println(querySystem.out.println(query=+=+tuto.getQuerytuto.getQuery();();S
43、ystem.out.println(pathSystem.out.println(path=+=+tuto.getPathtuto.getPath();();System.out.println(UserInfoSystem.out.println(UserInfo=+=+tuto.getUserInfotuto.getUserInfo();();System.out.println(AuthoritySystem.out.println(Authority=+=+tuto.getAuthoritytuto.getAuthority();();Copyright Copyright Kangh
44、uiKanghui JLU CCST JLU CCST181811.2 基于基于URL的网络编程的网络编程n n从从从从URLURL读取读取读取读取WWWWWW网络资源网络资源网络资源网络资源 n n当我们得到一个当我们得到一个当我们得到一个当我们得到一个URLURL对象对象对象对象后,就可以通过它读取指定的后,就可以通过它读取指定的后,就可以通过它读取指定的后,就可以通过它读取指定的WWWWWW资源。资源。资源。资源。n n使用使用使用使用URLURL的方法的方法的方法的方法openStreamopenStream()(),其定义为:,其定义为:,其定义为:,其定义为:InputStream
45、InputStream openStreamopenStream();();n n方法方法方法方法openSteamopenSteam()()与与与与指定的指定的指定的指定的URLURL建立连接并返回建立连接并返回建立连接并返回建立连接并返回InputStreamInputStream类类类类的对象以从这一连接中读取数据。的对象以从这一连接中读取数据。的对象以从这一连接中读取数据。的对象以从这一连接中读取数据。Copyright Copyright KanghuiKanghui JLU CCST JLU CCST191911.2 基于基于URL的网络编程的网络编程import import .
46、*;import.*;import java.iojava.io.*;.*;public class public class URLReaderURLReader public static void public static void main(Stringmain(String argsargs)throwsthrows ExceptionException /声明抛出所有异常声明抛出所有异常声明抛出所有异常声明抛出所有异常 URLURL tirctirc=new =new URLURL(“http:/(“http:/ in in=new=new BufferedReaderBuffe
47、redReader (new (new InputStreamReaderInputStreamReader(tirctirc.openStreamopenStream()(););/使用使用使用使用openStreamopenStream得到一输入流并由此构造一个得到一输入流并由此构造一个得到一输入流并由此构造一个得到一输入流并由此构造一个BufferedReaderBufferedReader对象对象对象对象 String String inputLineinputLine;while(while(inputLineinputLine=inin.readLinereadLine()!=nu
48、ll)()!=null)/从输入流读数据从输入流读数据从输入流读数据从输入流读数据,直到读完为止直到读完为止直到读完为止直到读完为止 System.out.println(inputLineSystem.out.println(inputLine););/把读入的数据打印到屏幕上把读入的数据打印到屏幕上把读入的数据打印到屏幕上把读入的数据打印到屏幕上 inin.closeclose();();/关闭输入流关闭输入流关闭输入流关闭输入流 Copyright Copyright KanghuiKanghui JLU CCST JLU CCST202011.2 基于基于URL的网络编程的网络编程n
49、n通过通过通过通过URLConnetctionURLConnetction连接连接连接连接WWW WWW n n通过通过通过通过URLURL的方法的方法的方法的方法openStreamopenStream()(),只能从网络上读取数据只能从网络上读取数据只能从网络上读取数据只能从网络上读取数据,如,如,如,如果果果果同时输出数据同时输出数据同时输出数据同时输出数据,例如向服务器端的,例如向服务器端的,例如向服务器端的,例如向服务器端的CGICGI程序程序程序程序发送一些数据,发送一些数据,发送一些数据,发送一些数据,必须必须必须必须先与先与先与先与URLURL建立连接,然后对其进行读写,要用到类建立连接,然后对其进行读写,要用到类建立连接,然后对其进行读写,要用到类建立连接,然后对其进行读写,要用到类URLConnectionURLConnection。CGI CGI(Common Gateway Interface)(Common Gateway Interface)公共网关接口公共网关接口公共网关接口公共网关接口n n用户用户用户用户浏览器浏览器浏览器浏览器和和和和服务器端的应用程序服务器端的应用程序服务器端的应用程序服务器端的应用程序进行连接的接口进行连接的接口进行连接的接口进行连接的接口n n类类类类URLConnectionURLConnection也在也在也在也在包