Java 程序设计 教学课件 ppt 作者 杨厚群 主编 chap12

上传人:E**** 文档编号:89388808 上传时间:2019-05-24 格式:PPT 页数:56 大小:208.50KB
返回 下载 相关 举报
Java 程序设计 教学课件 ppt 作者 杨厚群 主编 chap12_第1页
第1页 / 共56页
Java 程序设计 教学课件 ppt 作者 杨厚群 主编 chap12_第2页
第2页 / 共56页
Java 程序设计 教学课件 ppt 作者 杨厚群 主编 chap12_第3页
第3页 / 共56页
Java 程序设计 教学课件 ppt 作者 杨厚群 主编 chap12_第4页
第4页 / 共56页
Java 程序设计 教学课件 ppt 作者 杨厚群 主编 chap12_第5页
第5页 / 共56页
点击查看更多>>
资源描述

《Java 程序设计 教学课件 ppt 作者 杨厚群 主编 chap12》由会员分享,可在线阅读,更多相关《Java 程序设计 教学课件 ppt 作者 杨厚群 主编 chap12(56页珍藏版)》请在金锄头文库上搜索。

1、第12章 Java的网络编程,Java最初是作为一种网络编程语言出现的,它能够使用网络上的各种资源和数据与服务器建立各种传输通道,将自己的数据传送到网络的各个地方。你可以用Java很轻松地完成这些工作,因为Java类库提供了很强大的网络功能。,本章要点,网络基础知识 Java网络编程概述 Java网络类和接口 基于URL的网络编程 基于Socket的网络编程 数据报通信的应用,TCP/IP(Transmission Control Protocol传输控制协议/Internet Protocol网间协议)是Internet的主要协议,定义了计算机和外设进行通信所使用的规则。TCP/IP网络参考

2、模型包括五个层次:应用层、传输层、网络层、链路层、物理层。 ISO/OSI网络参考模型则包括七个层次:应用层、表示层、会话层、传输层、网络层、链路层、物理层。,12.1网络基础知识,物理层,大多数基于Internet的应用程序被看作TCP/IP网络的最上层应用层, 如:ftp,http,smtp,pop3,telnet,nntp等。 网络层对TCP/IP网络中的硬件资源进行标识。连接到TCP/IP网络中的每台计算机(或其他设备)都有唯一的地址,这就是IP地址。IP地址实质上是一个32位的整数,通常以“%d.%d.%d.%d”的形式表示,每个d是一个8位整数。 在TCP/IP网络中,不同的机器之

3、间进行通信时,数据的传输是由传输层控制的,这包括数据要发往的目标机器及应用程序、数据的质量控制等。 TCP/IP网络中最常用的传输协议就是TCP(Transport Control Protocol)和UDP(User Datagram Protocol)。,12.1网络基础知识,一台机器通常只通过一条链路连接到网络上,即它只有一个IP地址,但一台机器中往往有很多应用程序需要进行网络通信,如何区分呢?这就要靠网络端口号(port)了。 端口号是一个标记机器的逻辑通信信道的正整数,端口号不是物理实体。IP地址和端口号组成了所谓的Socket,Socket是网络上运行的程序之间双向通信链路的最后终

4、结点,它是TCP和UDP的基础。,IP与端口号组合而得出的Socket,可以完全分辨Internet上运行的程序。,12.1网络基础知识,端口号是用一个16位的整数来表达的,其范围为065535,其中01023为系统所保留,专门给那些通用的服务(well-known services),如http服务的端口号为80,telnet服务的端口号为21,ftp服务的端口为23,因此,当我们编写通信程序时,应选择一个大于1023的数作为端口号,以免发生冲突。,12.1网络基础知识,传输层通常以TCP和UDP协议来控制端点到端点的通信。用于通信的端点是由Socket来定义的,Socket是由IP地址和端

5、口号组成的。 传输控制协议(TCP)是在端点与端点之间建立持续的连接而进行通信。建立连接后,发送端将发送的数据印记了序列号和错误检测代码,并以字节流的方式发送出去;接收端则对数据进行错误检查并按序列顺序将数据整理好,数据在需要时可以重新发送,因此整个字节流到达接收端时完好无缺。这与两个人打电话的情形是相似的。 TCP协议具有可靠性和有序性,并且以字节流的方式发送数据,它通常被称为流通信协议。,12.1网络基础知识,与TCP协议不同,用户数据报协议(UDP)则是一种无连接的传输协议。利用UDP协议进行数据传输时,首先需要将要传输的数据定义成数据报(Datagram),在数据报中指明数据所要达到的

6、端点(Socket,主机地址和端口号),然后再将数据报发送出去。这种传输方式是无序的,也不能确保绝对的安全可靠,但它很简单也具有比较高的效率,这与通过邮局发送邮件的情形非常相似。,12.1网络基础知识,12.1网络基础知识,TCP协议和UDP协议各有各的用处。当对所传输的数据具有时序性和可靠性等要求时,应使用TCP协议;当传输的数据比较简单、对时序等无要求时,UDP协议能发挥更好的作用,如ping、发送时间数据等。,12.1网络基础知识,通过InetAddress,可以获取本机的IP地址: public class getLocalHostTest public static void mai

7、n() InetAddress myIP = null; try myIP = InetAddress.getLocalHost(); catch(UnknownHostException e) System.out.println(myIP); ,3、使用InetAddress,getLocalHostTest.java,URL是统一资源定位符(Uniform Resource Locator)的简称,它表示Internet上某一资源的地址。Internet上的资源包括HTML文件、图象文件、声音文件、动画文件以及其他任何内容(并不完全是文件,也可以是一个对数据库的查询等)。 通过URL,就

8、可以访问Internet。浏览器或其他程序通过解析给定的URL就可以在网络上查找相应的文件或其他资源。,12.1网络基础知识,一个URL包括两部分内容:协议名称和资源名称,中间用冒号隔开: Protocol:resourceName 如:http:/ 协议名称指的是获取资源时所使用的应用层协议,如http,ftp,file等;资源名称则是资源的完整地址,包括主机名、端口号、文件名或文件内部的一个应用。当然,并不是所有的URL都必须包含这些内容。 http:/ http:/ ftp:/ http:/:8080/java/network.html#UDP,12.1网络基础知识,一般计算机操作系统或

9、软硬件厂商会提供已完成的底层网络应用模块供用户使用,但在用户程序有特殊需要时,编程人员也可以自己编制底层网络应用程序来实现网上的底层通信,如具体实现网络层或传输层的某些协议。由于Java中提供了支持这些网络协议的专用类库,所以使用Java语言可以编制负责的底层网络应用。 利用Java语言还可以编写高层网络应用。现在已经存在用Java编写的复杂大型的商用分布系统,其功能包括网络上的公布式运算、分布式管理、分布式数据库应用等。这类应用一般比较复杂,通常依附在一个已经存在的综合性网络上作为该网络服务的一部分,Internet、Intranet和Extranet就是目前较常见的综合性网络。它们上面可以

10、开通多种由高层网络应用构成的服务,如网上购物、网上教学、网上银行、电子商务等。由于这些综合性网络的普及和其标准化程度的提高,因此用Java编写的高级网络应用通常都工作于它们所规定的环境中。,12.2 Java网络编程概述,以上是按照工作层次的划分不同的Java网络应用。事实上,在同一层次中根据功能的不同还可以将应用细分为不同的部分,这是由网络计算结构的分布式特点所决定的。在网络计算结构中,功能不同的机器其地位和扮演的角色也不同,其上运行的应用也不同,如我们前面介绍过的Client和Server,Server是提供服务的程序或运行这样程序的计算机。Client是请示服务的程序或运行这样程序的计算

11、机;一个完整的网络应用系统应该由Server端的应用程序和Client端的应用程序共同组成,并保证它们能够协同工作。所以在开发网络应用程序之前,应该先进行内容和分工的划分,根据应用的体系结构将整个任务划分为Server端的应用、Client端的应用和其他需要的部分,明确各部分各自的功能后才能再进行更进一步的工作。 Client端的应用和Server端的应用由于工作环境和任务性质的不同,有着各自不同的特点,在开发设计时应给予充分的考虑。例如Server端程序一般工作在高性能、大容量、高运算速度的机器上,一个Server被设计成能响应多个Client的服务请求;而Client端的应用由于直接与用户

12、打交道,且运行的环境差异性很大以及通常性能不高等原因,所以一般多包含精美的画面、活泼的形式和方便的图形用户界面交互功能,而不进行关键性的数据或事务处理。在开发一个具体的网络应用之前,了解Client和Server之间的这些差别是很有必要的。,12.2 Java网络编程概述,上述的Client/Server体系结构实际上是网络计算结构中比较基本的结构。目前,随着Internet的迅速普及和推广,出现了更加复杂的网络计算结构,如Client/Web Sever/Application Server、Browser/Web Server等,采用这些计算结构将把网络应用划分为分工更细的部分。一个Cli

13、ent程序需要能够工作在不同的Client计算机上,如果这些机器的软硬件环境不同,Client程序的跨平台功能就是必不可少的了。同样,对于Server来说,跨平台功能可以提高网络应用的普适性,使之能工作在更广泛的范围里,从这个意义上来说,Java是适合于编写网络应用的语言。另外Java的平台无关特性还大大简化了Java应用的升级和维护工作,进一步巩固了Java网络计算工具的地位。,12.2 Java网络编程概述,Java中有关网络方面的功能都定义在程序包中。Java所提供的网络功能可大致分为三大类: (1)URL类和URLConnection类这是三大类功能中最高级的一种。通过URL的网络资源

14、表达方式,很容易确定网络上数据的位置。利用URL的表示和建立,Java程序可以直接读入网络上所放的数据,或把自己的数据传送到网络的另一端。 (2)Socket类,即套接字,可以想像成两个不同的程序通过网络的通道,而这是传统网络程序中最常用的方法。一般在TCP/IP网络协议下的客户服务器软件采用Socket作为交互的方式。 (3)Datagram类,是这些功能中最低级的一种。其他网络数据传送方式,都假想在程序执行时,建立一条安全稳定的通道。但是以Datagram的方式传送数据时,只是把数据的目的地记录在数据包中,然后就直接放在网络上进行传输,系统不保证数据一定能够安全送到,也不能确定什么时候可以

15、送到。也就是说,Datagram不能保证传送质量。 另外,InetAddress类也是经常应用的类,它可以用于标识网络上的硬件资源。它提供了一系列描述、获取及使用网络资源的方法。每个InetAddress对象都包含IP地址、主机号等信息。InetAddress类没有构造函数,因此不能用new来构造InetAddress实例。通常是用它提供的静态方法来获取。,12.3 Java网络类和接口,12.4 基于URL的网络编程,在包中,提供了类URL来表示URL。类URL提供了很多构造方法来生成一个URL对象: public URL(String spec) public URL(URL context, String spec) public URL(String protocol, String host, String file) public URL(String protocol, String host, int port, String file) 以下是一些具体的构造实例: URL url1 = new URL(“http:/ URL base = new URL(“http:/”); URL url2 = new URL(base, “mywork1.html”); URL url3 = new URL(base, “mywork2.htm

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

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号