《第11章-网络编程ppt课件(全).ppt》由会员分享,可在线阅读,更多相关《第11章-网络编程ppt课件(全).ppt(38页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第11章 网络编程第11章 网络编程ppt课件(全)本章学习目标v掌握计算机网络的基本概念v理解TCP/IP和UDP协议v掌握基于TCP协议的网络编程技术v掌握基于UDP协议的网络编程技术第11章 网络编程ppt课件(全)v任务1:什么是计算机网络【任务内容】了解计算机网络【能力目标】了解计算机网络的概念、组成和功能11.1 网络编程的基础知识第11章 网络编程ppt课件(全)v计算机网络(Computer Network)是以共享资源(硬件、软件和数据等)为目的而连接起来的,在协议控制下由一台或多台计算机系统、若干台终端设备、数据传输设备等组成的系统之集合。v计算机网络的功能主要表现在硬件资
2、源共享、软件资源共享和用户间信息交换三个方面。第11章 网络编程ppt课件(全)v任务2:协议和计算机网络体系结构【任务内容】了解协议和计算机网络体系结构【能力目标】v了解网络协议和组成要素v了解计算机网络体系结构的概念和由来11.1 网络编程的基础知识第11章 网络编程ppt课件(全)v要想让两台计算机进行通信,必须使它们采用相同相同的信息交换规则的信息交换规则。v我们把在计算机网络中用于规定信息的格式以及如何发送和接收信息的一套规则称为网络协议网络协议(network protocol)或通信协议(communication protocol)。其中包含三个要素,即语法(Syntax)、语
3、义(Semantics)和时序(Timing)。v为了更方便地实现计算机设备之间的通信,我们定义和描述一组用于计算机及其通信设施之间互连的标准和规范的集合,称为计算机网络体系结构计算机网络体系结构(Network Architecture)。v1974年,IBM公司提出了世界上第一个网络体系结构(System Network Architecture,SNA)。此后,许多公司纷纷提出各自的网络体系结构,如ISO/OSI参考模型、TCP/IP体系结构、Netware体系结构、Windows NT体系结构等。第11章 网络编程ppt课件(全)v任务3:TCP/IP体系结构【任务内容】了解TCP/I
4、P体系结构【能力目标】v了解TCP/IP协议的概念和功能v了解TCP/IP协议的结构和特点v了解在TCP/IP参考模型中每层的具体协议和其功能v了解TCP与UDP的特点和区别11.1 网络编程的基础知识第11章 网络编程ppt课件(全)vTCP/IP协议协议(Transfer Control Protocol/Internet Protocol)叫做传输控制/网际协议,又叫网络通信协议,它包括上百个各种功能的协议,如远程登录、文件传输和电子邮件等,而TCP协议和IP协议是保证数据完整传输的两个基本的重要协议。通常说TCP/IP 是Internet协议族协议族,而不单单是TCP和IP。vTCP/
5、IP协议的基本传输单位是数据包数据包(datagram)。vTCP/IP协议数据的传输基于TCP/IP协议的四层结构:四层结构:应用层、传输层、网络层、接口层。第11章 网络编程ppt课件(全)TCP/IP协议具有以下特点:v协议标准具有开放性,其独立于特定的计算机硬件及操作系统,可以免费使用。v统一分配网络地址,使得整个TCP/IP设备在网络中都具有唯一的IP地址。v实现了高层协议的标准化,能为用户提供多种可靠的服务。第11章 网络编程ppt课件(全)vUDP:(1)每个数据报中都给出了完整的地址信息,因此无须建立发送方和接收方的连接。(2)UDP传输数据时是有大小限制的,每个被传输的数据报
6、必须限定在64KB之内。(3)UDP是一个不可靠的协议,发送方所发送的数据报并不一定以相同的次序到达接收方。vTCP:(1)面向连接的协议,在socket之间进行数据传输之前必然要建立连接,所以在TCP中需要连接时间。(2)TCP传输数据大小限制,一旦连接建立起来,双方的socket就可以按统一的格式传输大的数据。(3)TCP是一个可靠的协议,它确保接收方完全正确地获取发送方所发送的全部数据。v实际应用:实际应用:(1)TCP在网络通信上有极强的生命力,例如远程连接(Telnet)和文件传输(FTP)都需要不定长度的数据被可靠地传输。但是可靠的传输是要付出代价的,对数据内容正确性的检验必然占用
7、计算机的处理时间和网络的带宽,因此TCP传输的效率不如UDP高。(2)UDP操作简单,且仅需要较少的监护,因此通常用于局域网高可靠性的分散系统中Client/Server应用程序。例如视频会议系统,并不要求音频视频数据绝对地正确,只要保证连贯性就可以了,这种情况下显然使用UDP会更合理一些。第11章 网络编程ppt课件(全)v任务4:通信端口【任务内容】了解通信端口【能力目标】了解通信端口的概念及其意义11.1 网络编程的基础知识第11章 网络编程ppt课件(全)v一个IP地址的端口可以有65536个v端口是通过端口号来标记的,端口号只有整数,范围是从0 到65535。v端口号是一个标记机器逻
8、辑通信信道的正整数,端口号不是物理实体。IP地址和端口号组成了所谓的Socket。v端口号0到1023被系统保留,专门用于那些通用的服务,例如,对于每个TCP/IP实现来说,FTP服务器的TCP端口号都是21,每个Telnet服务器的TCP端口号都是23,每个TFTP(简单文件传送协议)服务器的UDP端口号都是69,HTTP默认是80 v网络上的不同服务是通过“IP+端口号”来区分,因而一台主机可以提供web服务、FTP服务等。第11章 网络编程ppt课件(全)v任务5:URL概念【任务内容】了解URL概念【能力目标】了解URL概念和语法格式11.1 网络编程的基础知识第11章 网络编程ppt
9、课件(全)vURL(Uniform Resource Locator)即统一资源定位器,表示Internet上某一资源的地址,Internet上的资源包括HTML文件、图像文件、动画文件、声音文件以及其他任何内容(执行数据库查询和Internet搜索)。vURL的语法格式是::/:/#例如:例如:(1)http:/ 传输协议:/主机名(2)http:/172.16.8.168 传输协议:/IP地址(3)https:/localhost:80/home/index.htm#top 传输协议:/主机名:端口号/文件名#引用第11章 网络编程ppt课件(全)v任务6:Java基本网络支持【任务内容】
10、了解Java基本网络支持【能力目标】v了解Java的网络编程的层次v了解Java语言提供的相关网络功能类11.2 Java的基本网络支持的基本网络支持第11章 网络编程ppt课件(全)Java的网络编程分为三个层次。(1)最高一级的网络通信就是从网络上下载小应用程序,客户端浏览器通过HTML文件中的标记来识别小程序,并解析小程序的属性,通过网络获取小程序的字节码文件。(2)次一级的通信就是通过类URL对象指明文件所在的位置,并从网络上下载声音和图像,然后对声音播放和图像显示。(3)最低一级的通信是利用包中提供的类直接在程序中实现网络通信。v针对不同层次的网络通信,Java语言提供的网络功能有4
11、大类:URL、InetAddress、Socket、Datagram。第11章 网络编程ppt课件(全)Java网络编程中主要使用包中的以下类。v面向IP层的类:InetAddress。v面向应用层的类:URL、URLConnection。vTCP协议相关类:Socket、ServerSocket。vUDP协议的类:DatagramPacket、DatagramSocket、MulticastSocket。第11章 网络编程ppt课件(全)在使用包中的这些类时,可能产生的异常如下:vBindException:套接字绑定异常类。vConnectException:套接字绑定异常类。vProto
12、colException:远程连接异常类。vSocketException:套接字异常类。vUnKnownHostException:未知定主机异常类。vUnKnownServiceException:未知服务异常类。vMalformedURLException:错误的URL异常类。vNoRouteToHostException:无路由器而无法连接主机异常类。第11章 网络编程ppt课件(全)v任务7:基于URL的网络程序设计编程【任务内容】URL类的使用【能力目标】v掌握URL类的构造方法v掌握获取URL对象相关信息的常用方法【任务分析】v要实现该任务首先要用URL类去创建一个URL对象,并
13、指定其连接的URL地址,然后使用其常用方法将其信息显示出来。11.3 基于TCP协议的网络编程第11章 网络编程ppt课件(全)/案例:案例:URLDemo.java,URLDemo.java,创建一个参数为的创建一个参数为的URLURL对象,并输出该对象的信息对象,并输出该对象的信息 vimport .*;vpublic class URLDemo vpublic static void main(String args)v try v URL url=new URL(http:/);/创建URL对象v System.out.println(协议 :+url.getProtocol();/显
14、示URL的协议v System.out.println(主机:+url.getHost();/显示URL中的主机名v System.out.println(文件名:+url.getFile();/显示URL中的文件名v System.out.println(端口号:+url.getPort();/显示URL中的端口号v System.out.println(引用 :+url.getRef();/显示URL中的引用v System.out.println(查询:+url.getQuery();/显示URL中的查询v System.out.println(路径:+url.getPath();/显示
15、URL中的文件路径v System.out.println(用户信息:+url.getUserInfo();/显示URL中的用户信息v System.out.println(权限 :+url.getAuthority();/显示URL中的权限 catch(MalformedURLException e)vSystem.out.println(error:+e.getMessage();/显示异常信息vvv第11章 网络编程ppt课件(全)1.URL类vURL类表示一个统一资源定位器,它是指向互联网上某一资源的指针,这个资源可以是主机上的一个文件或路径,也可以是文件上的一个引用。v示例:URLR
16、eader.java第11章 网络编程ppt课件(全)2.URLConnection类vURLConnection类支持URL连接的输入/输出流方式的通信,并可以获得URL对象资源的相关信息。v示例:URLConnectionDemo.java第11章 网络编程ppt课件(全)3.InetAddress类vInetAddress类用于表示一个IP地址。v示例:InetAddressDemo.java第11章 网络编程ppt课件(全)v任务8:基于Socket的Java网络编程【任务内容】基于套接字的网络通信程序设计【能力目标】v掌握套接字通信的程序设计思想及开发流程v掌握ServerSocke
17、t类的使用方法v掌握Socket类的使用方法v学会实现客户端与服务器端之间互相发送、接收消息【任务分析】v先使用ServerSocket类创建聊天服务器,利用ServerSocket类对象的accept()方法来阻塞等待客户请求,当请求到来则产生一个Socket对象,输出客户端请求信息,并给客户端返回服务器端的输入信息。11.3 基于TCP协议的网络编程第11章 网络编程ppt课件(全)v案例:TalkServer.java/TalkClient.java v上例实现了使用应用层协议访问网络资源,但是在网络应用中,仅仅使用这些应用层协议访问网络是远远不够的。v当你需要编写一个客户/服务模式的网
18、络应用系统时就很难使用这些高层协议来实现这种网络应用。在网络程序设计中常用的套接字(Socket)通信 vSocket是简化编写基于TCP协议的网络应用程序,对TCP进行了封装从而形成一个简便的开发包。第11章 网络编程ppt课件(全)1.Socket和连接vSocket是由IP地址和端口号唯一确定的。v在Client/Server模式下,通常按照它们在网络中所起的作用不同,可以分为两类:客户端和服务器端。v服务器端:服务器端的Socket始终在监听指定的端口是否有连接请求,如果发现客户端Socket向其发出连接请求,且服务器接受连接请求,这样,两个Socket对象之间就创建了连接,如图11-
19、5所示。图11-5 Client/Server模式示意图第11章 网络编程ppt课件(全)(2)客户端:客户端需要创建和服务器端的连接,就必须事先知道服务器的主机名和提供服务的端口号。有了这些信息以后,当客户端发出的建立连接的请求被服务器端接受时,客户机上就会创建一个Socket对象。利用这个Socket对象,客户端就可以实现与服务器端的通信。第11章 网络编程ppt课件(全)总结:这种工作过程主要包含下面四个基本步骤:v 创建Socket对象。v 打开连接到Socket对象的输入/输出流。v 按照一定的协议对Socket对象进行读/写操作。v 关闭Socket对象(即释放Socket对象所绑
20、定的连接)。第11章 网络编程ppt课件(全)2.Socket类vJava在包中提供了两个类Socket和ServerSocket,分别用来表示双向连接的客户端和服务器端。v例如,要求请求与一台IP地址为、端口号为2000的远程机器之间建立连接,可以用如下语句创建:trySocket socket=new Socket(192.168.0.36,2000);catch(IOException e)e.printStackTrace();第11章 网络编程ppt课件(全)3.ServerSocket类 v服务器端需要由ServerSocket类来实现服务器端的Socket。ServerSocke
21、t对象监听网络中来自客户端的服务请求,它根据请求来创建连接,并响应客户请求的服务。v例如,要创建一个监听8080端口的Socket服务器端,可以使用下面的语句来实现。ServerSocket server=new ServerSocket(8080);第11章 网络编程ppt课件(全)v要构建客户要构建客户/服务模式中的服务器端通常需要服务模式中的服务器端通常需要5个步个步骤:骤:(1)创建一个ServerSocket对象,以实现对指定端口的监听。可用下面的程序语句来创建:ServerSocket server=new ServerSocket(port);(2)服务器无限期地监听客户连接请求
22、。为了监听客户连接,程序调用ServerSocket方法accept,如下面的程序段:Socket connection=server.accept();当与一个客户建立连接,将返回一个Socket对象。该套接字允许服务器与客户交互。(3)通过获取的Socket对象来取得OutputStream和InputStream对象,使服务器能够通过发送和接收字节与客户进行通信。(4)通信阶段。在这个阶段中,客户和服务器通过OutputStream和InputStream对象进行通信。(5)当传输完成时,服务器通过调用流和套接字的close()方法关闭连接。第11章 网络编程ppt课件(全)v一个典型的
23、创建一个典型的创建Server端端ServerSocket的过程的过程:ServerSocket server=null;try server=new ServerSocket(2000);/创建一个ServerSocket在端口2000监听客户请求 catch(IOException e)System.out.println(can not listen to:+e);Socket socket=null;try socket=server.accept();/accept()是一个阻塞的方法,一旦有客户请求,它就会返回一个Socket对象用于同客户进行交互 catch(IOExceptio
24、n e)System.out.println(Error:+e);第11章 网络编程ppt课件(全)v任务9:什么是数据报【任务内容】了解数据报【能力目标】v了解数据报的概念和相关应用v了解UDP的概念和工作过程11.4 基于UDP协议的网络编程第11章 网络编程ppt课件(全)v数据报(Datagram)是通过网络传递的一个独立的、自我封装的数据包,它可以从网络中的一个点传递到另一个点。数据报通信是以UDP协议为基础的。vUDP的数据传输机制与TCP不同。用户数据报协议(User Datagram Protocol,UDP)是一种不可靠的、无连接和面向消息的协议。第11章 网络编程ppt课件
25、(全)v通过UDP的UDP端口来实现UDP协议的网络通信。其工作过程如下:(1)创建一个适当的要发送且注明收发人地址的数据报。(2)为一个特定的应用程序建立一个传输端口来传送和接收数据报。(3)将数据报插入一个传输端口中进行传输。(4)等待接收来自于传输端口的一个数据报。(5)解码数据报以解开消息、接收者和其他信息。第11章 网络编程ppt课件(全)v任务10:Java UDP类【任务内容】基于UDP的网络通信【能力目标】v掌握基于UDP协议的网络程序设计v掌握DatagramSocket类的常用方法v掌握DatagramPacket类的使用技巧【任务分析】v要实现基于UDP的聊天可以由下面几
26、个步骤来实现:v(1)创建用于发送聊天信息的UDP套接字。v(2)响应用户的发送事件。主要需要捕获用户的行为事件,并加以处理。其实现的方法就是实现ActionListener接口中的actionPerformed方法。v(3)发送用户的聊天消息给对方。要实现消息的发送必须先获得用户输入的信息,然后根据收信人的IP地址和监听端口号创建一个发送数据报,再从打开的UDP Socket中发送出去。v(4)接收对方发送的消息。需要在调用接收数据报之前先创建一个本地数据报监听UDP套接字和一个用于保存接收到数据的接收数据报对象,然后再调用该套接字中的receive()方法去监听数据报的到来。v(5)解码收
27、到的数据报,并显示收到的信息。11.4 基于UDP协议的网络编程第11章 网络编程ppt课件(全)/案例:本例由聊天界面类(ChatFrame类)和聊天控制类(UDPChat类)来实现聊天功能:ChatFrame.java/UDPChat.java/案例:一个基于UDP简单的网络通信程序:ServerUdp.java/ClientUdp.java第11章 网络编程ppt课件(全)作 业v1.编写Socket客户端和服务器端程序,客户端发送一个包含多个数字的字符串给服务器,服务器排序后返回给客户端。v2.编写一个基于UDP简单的网络通信程序。要实现网络通信,可以从客户端获得一个字符串,把字符串全部转为大写字母之后返回给服务器端。第11章 网络编程ppt课件(全)