网络通信ppt课件_第1页
网络通信ppt课件_第2页
网络通信ppt课件_第3页
网络通信ppt课件_第4页
网络通信ppt课件_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

.朱战立,第12章网络通信,12.1计算机网络的基本概念12.2使用URL类访问网络资源12.3连接通信12.4数据报通信,.朱战立,12.1计算机网络的基本概念,计算机网络是指通过各种通信设备连接起来的、支持特定网络通信协议的、许许多多的计算机或计算机系统集合。网络通信是指网络中的计算机通过网络互相传递信息。通信协议是网络中计算机之间进行通信时共同遵守的规则。不同的通信协议用不同的方法解决不同类型的通信问题。常用的通信协议有:HTTP、FTP、TCP/IP等。目前较为流行的网络通信模型是客户机/服务器(Client/Server,缩写为C/S)结构。网络上的计算机要互相通信,必须首先做到:l能够准确定位网络上的任意一个通信主体l有一套通信规则保证网络上可靠高效的数据传输12.1.1通信主体的定位12.1.2TCP协议和UDP协议12.1.3网络程序设计的基本方式,.朱战立,12.1.1通信主体的定位,通信主体有两级:IP地址和端口号。IP地址可定位网络上的任意一台主机。端口号可定位主机的进程1.IP地址IP地址是计算机网络中任意一台计算机地址的惟一标识。知道了网络中某一台计算机的IP地址,就可以定位这台计算机。通过这种地址标识,网络中的计算机可以互相定位和通信。目前,IP地址由四个8位的二进制数组成,中间以小数点分隔。如,又如0。主机名是计算机网络中一台计算机的标识名,也可以看作是IP地址的助记名。如:、等。在Internet上,IP地址和主机名是一一对应的2.端口号端口(port)是网络通信时同一主机上的不同进程的标识端口号(portnumber)是端口的数字编号,例如80,.朱战立,12.1.2TCP协议和UDP协议,TCP协议和UDP协议是网络通信时使用的两种主要协议1.TCP协议TCP(TransferControlProtocol的简称)协议是一种面向连接的、可以提供可靠传输的协议使用TCP协议传输数据,接收端得到的是一个和发送端发出的完全一样的数据流(包括顺序)。发送方和接收方之间的两个端口必须建立连接在程序中,端口之间建立连接一般使用的是Socket(套接字)方法这种通信方式和电信局的电话系统很相似2.UDP协议UDP(UserDatagramProtocol的简称)是一种无连接的协议,它传输的是一种独立的数据报(Datagram)每个数据报都是一个独立的信息,包括完整的源地址或目的地址。数据报在网络上以任何可能的路径传往目的地,因此,数据报能否到达目的地、到达目的地的时间、数据的正确性和各个数据报到达的顺序都是不能完全保证的这种通信方式和邮局的信件传送方式很相似,.朱战立,3.两种协议的比较,l使用UDP协议时,每个数据报中都给出了完整的地址信息,因此无需建立发送方和接收方的连接。使用TCP协议时,由于它是一个面向连接的协议,在Socket之间进行数据传输之前必然要建立连接l使用UDP协议传输数据是有大小限制的,每个被传输的数据报必须限定在64KB之内。而TCP协议没有这方面的限制,一旦连接建立起来,双方的Socket就可以按统一的格式传输大量的数据lUDP协议是一个不可靠的协议,发送方所发送的数据报并不一定以相同的次序到达接收方,还有可能会丢失。而TCP是一个可靠的协议,它确保接收方完全正确地获取发送方所发送的全部数据,.朱战立,12.1.3网络程序设计的基本方式,Java用于网络通信的包是,它包含了多个用于各种标准网络协议通信的类和接口。Java网络程序设计的基本方式主要有三种:1.使用URL访问网络资源URL表示了Internet上某个资源的地址。URL支持http、file、ftp等多种协议。Java通过URL标识,可以直接使用http、file、ftp等多种协议,获取远端计算机上的资源信息,方便快捷地开发Internet应用程序2.连接通信连接通信主要使用Socket。Socket是TCP/IP协议中的传输层接口。连接通信是使用TCP/IP协议、建立在稳定连接基础上的、以流传输数据的通信方式。它是目前实现Client/Server模式应用程序的主要方式。常见的聊天程序等就是连接通信的应用3.数据报通信数据报是一种在网络上传播的、独立的、自包含地址信息的格式化信息。数据报通信使用UDP协议。数据报通信不需要建立连接,通信时所传输的数据报能否到达目的地、到达的时间、到达的次序都不能准确知道。数据报通信主要用于传输一些数据量大的、非关键性的数据,.朱战立,12.2使用URL类访问网络资源,URL用来表示Internet上资源的位置。通过URL标识,可以直接利用http、file、ftp等多种网络协议来获取远端计算机上的资源或信息,从而方便快捷地开发出Internet应用程序12.2.1资源定位器URL和URL类12.2.2URLConnection类和InetAddress类,.朱战立,12.2.1资源定位器URL和URL类,1.源定位器URLURL(UniformResourceLocator)是一致资源定位器的简称,用来表示Internet上资源的地址。知道了网络上任意一个资源的URLURL的语法格式是::/:/#其中,、和是可选的。和是必需的。当没有给出时,浏览器默认的传输协议是http。下面都是合法的URL:http:/localhost:80,.朱战立,2.URL类,包中定义了URL类。URL类表示一个一致资源定位器,它是指向互联网上某一资源的指针,这个资源可以是某个主机的一个文件或路径,也可以是文件上的一个锚(或称引用)。(1)构造方法lURL(Stringspec)lURL(URLcontext,Stringspec)lURL(Stringprotocol,Stringhost,Stringfile)lURL(Stringprotocol,Stringhost,intport,Stringfile)例如,下面的每个语句分别创建并初始化了一个URL对象:URLu1=newURL(,.朱战立,(2)常用方法,lStringgetProtocol()返回当前URL的协议名lStringgetHost()返回当前URL的主机名lintgetPort()返回当前URL的端口号lStringgetFile()返回当前URL的文件名lStringgetQuery()返回当前URL的查询lStringgetPath()返回当前URL的路径lStringgetAuthority()返回当前URL的权限lStringgetUserInfo()返回当前URL的用户信息lStringgetRef()返回当前URL的锚(或称引用)lInputStreamopenStream()打开当前URL的连接,返回从这个连接读取的输入流lURLConnectionopenConnection()返回一个由URL指示的、表示与远程对象连接的URLConnection对象,.朱战立,12.2.2URLConnection类和InetAddress类,URLConnection类支持URL连接的输入/输出流方式的通信,并可以获得URL对象资源的相关信息。InetAddress类表示了一个IP地址1.URLConnection类URLConnection类是所有表示应用程序和URL连接通信的类的父类。该类的对象可以用来输出/输入URL对象所表示的Internet上的数据应用程序和URL要建立一个连接通常需要几个步骤,但首先要做的,是创建一个由URL指示的、表示与远程对象连接的URLConnection对象(1)URLConnection类的成员变量:lconnectedlurlluseCaches(2)URLConnection类的构造方法:lURLConnection(URLurl),.朱战立,(3)URLConnection类的常用方法:,lvoidsetUseCaches(booleanusecaches)设置成员变量useCachesd的逻辑值lobjectgetContent()获取当前URL连接的信息内容lStringgetContentType()返回连接类型的头域值lintgetContentLength()返回连接长度的头域值llonggetDate()返回日期头域值llonggetLastModified()返回最后修改时间头域值lInputStreamgetInputSTream()返回从所打开连接读数据的输入流lOutputStreamgetOutputSTream()返回向所打开连接写数据的输出流,.朱战立,2.InetAddress类,InetAddress类表示了一个IP地址,应用程序可调用该类的getLocalHost()、getByName()或者getAllByName()方法来创建一个新的InetAddress对象。InetAddress类的常用方法有:lstaticStringgetLocalHost()返回本地主机名lstaticStringgetByName(Stringhost)根据主机名host确定主机的IP地址lstaticStringgetAllByName()根据主机名host确定主机的所有IP地址lStringgetHostName()返回当前IP地址的主机名lStringgetHostAddress()返回IP地址字符串lbytegetAddress()返回当前对象的IP地址的字节数组lStringtoString()转换IP地址为字符串,.朱战立,12.3连接通信,运用TCP协议通信时,客户机和服务器之间首先需要建立一个连接,然后客户机端和服务器端程序各自将一个Socket对象和这个连接绑定,这样,两端的程序就可以通过和连接绑定的Socket对象来读写数据了12.3.1Socket和连接12.3.2Socket类和ServerSocket类12.3.3Client/Server结构的通信实例,.朱战立,12.3.1Socket和连接,在Client/Server模式下,按照Socket在网络中所起的作用不同,可以将它们分为两类:客户机端Socket和服务器端Socket。两类Socket的工作过程是这样的:(1)在服务器端:服务器端的Socket始终在监听是否有连接请求,如果发现客户机端Socket向服务器发出连接请求,且服务器接受服务请求,则服务器端Socket向客户机端Socket发回“接受”的消息。这样,两个Socket对象之间的连接就建立了。(2)在客户机端:建立一个和服务器的连接。这需要客户机端知道服务器的主机名和提供服务的端口号。有了这些信息,当客户机端发出的建立连接的请求被服务器端接受时,客户机上就会创建一个Socket对象。利用这个Socket对象,客户机就可以和服务器进行通信了。这样的工作过程包含以下四个基本步骤:(1)创建Socket对象;(2)打开连接到Socket对象的输入/输出流;(3)按照一定的协议对Socket对象进行读/写操作;(4)关闭Socket对象(即关闭Socket对象绑定的连接),.朱战立,12.3.2Socket类和ServerSocket类,Socket类和ServerSocket类,分别用来表示双向连接的客户机端Socket和服务器端Socket。在程序中,只需要在创建了Socket对象和ServerSocket对象后,调用相应的方法,就可以实现网络通信了。1.Socket类Socket类实现了客户机端的Socket。Socket对象可以用来向服务器发出连接请求,并交换数据。(1)Socket类的构造方法lSocket(InetAddressaddress,intport);lSocket(Stringhost,intprot);lSocket(Stringhost,intport,InetAddresslocalAddr,intlocalPort)lSocket(InetAddressaddress,intport,InetAddresslocalAddr,intlocalPort),.朱战立,(2)Socket类的常用方法,lInetAddressgetLocalAddress()获取Socket对象邦定的本地机地址lintgetLocalPort()返回Socket对象邦定的本地机端口号lInetAddressgetAddress()获取Socket对象邦定的远程地址lintgetPort()返回Socket对象邦定的远程端口号lOutputStreamgetOutputSTream()返回Socket对象的输出流lInputStreamgetInputSTream()返回Socket对象的输入流lvoidsetSoTimeout(inttimeout)设置操作允许的毫秒时间timeout,.朱战立,2.ServerSocket类,ServerSocket类实现了服务器端Socket。ServerSocket对象监听网络中来自客户机的服务请求,根据请求建立连接(1)构造方法lServerSocket(intport)lServerSocket(intport,intcount)例如,下面语句:ServerSocketserver=newServerSocket(4700);(2)常用方法lInetAddressgetInetAddress()返回Socket的本地地址lintgetLocalPort()返回Socket正监听的端口号lSocketaccept()监听当前Socket的连接并接收请求lvoidclose()关闭连接lvoidsetSoTimeout(inttimeout)设置连接允许的毫秒时间timeout,.朱战立,12.3.3Client/Server结构的通信实例,【例12.1】设计一个基于Socket结构的简易聊天程序。要求:(1)用户界面采用图形用户界面;(2)通信的双方都为本机(即当前主机既是服务器又是客户机);(3)服务器同时只和一个客户机建立连接,.朱战立,12.4数据报通信,数据报(Datagram)是通过网络传递的一个独立的、自我封装的数据包,它可以从网络中的一个点传递到另外一个点。数据报通信以UDP协议为基础数据报通信主要使用在数据量大的应用环境下,如网络游戏,视频会议等。包中提供了两个类:DatagramSocket类和DatagramPacket类,用来支持数据报通信。DatagramSocket类用来在程序之间建立传送数据报的通信连接,DatagramPacket类用来表示数据报,.朱战立,1.DatagramSocket类,DatagramSocket类主要用来在程序之间建立传送数据报的通信连接(1)DatagramSocket类的构造方法有:lDatagramSocket()lDatagramSocket(int

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论