第十一讲 JAVA网络的基本知识PPT课件.ppt_第1页
第十一讲 JAVA网络的基本知识PPT课件.ppt_第2页
第十一讲 JAVA网络的基本知识PPT课件.ppt_第3页
第十一讲 JAVA网络的基本知识PPT课件.ppt_第4页
第十一讲 JAVA网络的基本知识PPT课件.ppt_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

第11章Java网络的基本知识 11 1使用URL11 2读取URL中的资源11 3显示URL资源中的html文件11 4处理超链接11 5InetAdress类11 6套接字11 7网络中的数据压缩与传输11 8UDP数据报11 9广播数据报 1 第11章Java网络的基本知识 教学目的 理解计算机网络编程的概念 掌握如何使用Java在一台或多台计算机之间进行基于TCP IP协议的网络通讯 通过理解TCP IP协议的通讯模型 以JDK提供的包为工具 勤加练习 掌握各种基于Java的网络通讯的实现方法 2 第11章Java网络的基本知识 教学内容 1 网络通信的基本概念 2 基于URL的通信 3 基于TCP的通信 4 典型的因特网应用 5 基于UDP的通信 重点难点内容 TCP以及UDP的使用 3 补充 基本概念 一 计算机网络 计算机网络 是相互连接的独立自主的计算机的集合 最简单的网络形式由两台计算机组成 4 二 两台计算机通过网络进行通信 A B 192 168 0 118 192 168 0 10 协议 协议 端口 端口 补充 基本概念 5 补充 基本概念 三 IP地址IP网络中每台主机都必须有一个惟一的IP地址 IP地址是一个逻辑地址 因特网上的IP地址具有全球唯一性 32位 4个字节 常用点分十进制的格式表示 例如 192 168 0 16 6 补充 基本概念 四 协议为进行网络中的数据交换 通信 而建立的规则 标准或约定 语义 语法 规则 不同层具有各自不同的协议 7 补充 基本概念 五 网络的状况多种通信媒介 有线 无线 不同种类的设备 通用 专用 不同的操作系统 Unix Windows 不同的应用环境 固定 移动 不同业务种类 分时 交互 实时 宝贵的投资和积累 有形 无形 用户业务的延续性 不允许出现大的跌宕起伏 它们互相交织 形成了非常复杂的系统应用环境 8 补充 基本概念 六 网络异质性问题的解决网络体系结构是使这些用不同媒介连接起来的不同设备和网络系统在不同的应用环境下实现互操作性 并满足各种业务需求的一种粘合剂 它营造了一种 生存空间 任何厂商的任何产品 以及任何技术只要遵守这个空间的行为规则 就能够在其中生存并发展 网络体系结构解决异质性问题 采用的是分层方法 把复杂的网络互联问题划分为若干个较小的 单一的问题 在不同层上予以解决 就像我们在编程时把问题分解为很多小的模块来解决一样 9 补充 基本概念 七 ISO OSI七层参考模型1 概念OSI OpenSystemInterconnection 参考模型将网络的不同功能划分为7层 应用层 表示层 物理层 会话层 传输层 网络层 数据链路层 处理网络应用 数据表示 主机间通信 端到端的连接 寻址和最短路径 介质访问 接入 二进制传输 10 补充 基本概念 通信实体的对等层之间不允许直接通信 各层之间是严格单向依赖 上层使用下层提供的服务 Serviceuser 下层向上层提供服务 Serviceprovider 11 补充 基本概念 2 对等通信示例 12 补充 基本概念 3 对等层通信的实质对等层实体之间虚拟通信 下层向上层提供服务 实际通信在最底层完成 13 补充 基本概念 4 OSI各层所使用的协议应用层 远程登录协议Telnet 文件传输协议FTP 超文本传输协议HTTP 域名服务DNS 简单邮件传输协议SMTP 邮局协议POP3等 传输层 传输控制协议TCP 用户数据报协议UDP TCP 面向连接的可靠的传输协议 UDP 是无连接的 不可靠的传输协议 网络层 网际协议IP Internet互联网控制报文协议ICMP Internet组管理协议IGMP 14 补充 基本概念 5 数据封装一台计算机要发送数据到另一台计算机 数据首先必须打包 打包的过程称为封装 封装就是在数据前面加上特定的协议头部 数据 数据 协议头 15 数据封装 续 OSI参考模型中 对等层协议之间交换的信息单元统称为协议数据单元 PDU ProtocolDataUnit OSI参考模型中每一层都要依靠下一层提供的服务 为了提供服务 下层把上层的PDU作为本层的数据封装 然后加入本层的头部 和尾部 头部中含有完成数据传输所需的控制信息 这样 数据自上而下递交的过程实际上就是不断封装的过程 到达目的地后自下而上递交的过程就是不断拆封的过程 由此可知 在物理线路上传输的数据 其外面实际上被包封了多层 信封 但是 某一层只能识别由对等层封装的 信封 而对于被封装在 信封 内部的数据仅仅是拆封后将其提交给上层 本层不作任何处理 16 补充 基本概念 6 TCP IP模型TCP IP起源于美国国防部高级研究规划署 DARPA 的一项研究计划 实现若干台主机的相互通信 现在TCP IP已成为Internet上通信的工业标准 TCP IP模型包括4个层次 应用层传输层网络层网络接口 17 补充 基本概念 7654321 OSI参考模型 TCP IP模型 TCP IP与OSI参考模型的对应关系 18 补充 基本概念 7 端口端口是一种抽象的软件结构 包括一些数据结构和I O缓冲区 应用程序通过系统调用与某端口建立连接 binding 后 传输层传给该端口的数据都被相应的进程所接收 相应进程发给传输层的数据都通过该端口输出 19 补充 基本概念 端口用一个整数型标识符来表示 即端口号 端口号跟协议相关 TCP IP传输层的两个协议TCP和UDP是完全独立的两个软件模块 因此各自的端口号也相互独立 端口通常称为协议端口 protocolport 简称端口 端口使用一个16位的数字来表示 它的范围是0 65535 1024以下的端口号保留给预定义的服务 例如 http使用80端口 20 11 1使用URL URL类是对统一资源定位符 UniformResourceLocator 的抽象 使用URL创建对象的应用程序称作客户端程序 一个URL对象存放着一个具体的资源的引用 表明客户要访问这个URL中的资源 利用URL对象可以获取URL中的资源 URL对象通常包含最基本的三部分信息 协议 地址 资源 21 11 1使用URL URL的构造方法 publicURL Stringspec throwsMalformedURLExceptiontry url newURL catch MalformedURLExceptione System out println BadURL url 22 11 2读取URL中的资源 URL对象调用InputStreamopenStream 方法可以返回一个输入流 该输入流指向URL对象所包含的资源 通过该输入流可以将服务器上的资源信息读入到客户端 23 11 3显示URL资源中的html文件 Javax swing包中的JEditorPane容器可以解释执行html文件 也就是说 如果你把html文件读入到JEditorPane 该html文件就会被解释执行 显示在JEditorPane容器中 这样程序就看到了网页的运行效果 24 11 4处理超链接 当JEditorPane对象调用setEditable方法将编辑属性设为false时 不仅可以显示网页的运行效果 而且用户如果单击网页中超链接还可以使得JEditorPane对象触发HyperlinkEvent事件 程序可以通过处理HyperlinkEvent事件 来显示新的URL资源 25 11 5InetAdress类 包中的InetAddress类对象含有一个Internet主机地址的域名和IP地址 26 11 6套接字 一 套接字 socket 的引入为了能够方便的开发网络应用软件 由美国伯克利大学在Unix上推出了一种应用程序访问通信协议的操作系统调用socket 套接字 socket的出现 使程序员可以很方便地访问TCP IP 从而开发各种网络应用的程序 随着Unix的应用推广 套接字在编写网络软件中得到了极大的普及 后来 套接字又被引进了Windows等操作系统中 Java语言也引入了套接字编程模型 27 二 基于TCP的socket编程 Server Server ServerSocket intport Socketaccept OutputStreamSocket getOutputStream InputStreamSocket getInputSream Socket close Client Socket InetAddressaddress intport OutputStreamSocket getOutputStream InputStreamSocket getInputStream Socket close 28 服务器程序编写 调用ServerSocket intport 创建一个服务器端套接字 并绑定到指定端口上 调用accept 监听连接请求 如果客户端请求连接 则接受连接 返回通信套接字 调用Socket类的getOutputStream 和getInputStream获取输出流和输入流 开始网络数据的发送和接收 最后关闭通信套接字 客户端程序编写 调用Socket 创建一个流套接字 并连接到服务器端 调用Socket类的getOutputStream 和getInputStream获取输出流和输入流 开始网络数据的发送和接收 最后关闭通信套接字 29 11 6套接字 三 客户端的套接字对象客户端建立到服务器的套接字连接try Socketmysocket newSocket http 192 168 0 78 1880 catch IOExceptione 30 11 6套接字 四 获取输入输出流套接字连接mysocket建立后 mysocket可以使用方法getInputStream 获得一个输入流 然后用这个输入流读取服务器放入 线路 的信息 但不能读取自己放入 线路 的信息 就象打电话时 我们只能听到对方放入线路里的声音一样 mysocket还可以使用方法getOutputStream 获得一个输出流 然后用这个输出流将信息写入 线路 31 11 6套接字 五 服务器端的套接字对象服务器必须建立一个等待接收客户的套接字的ServerSocket对象 ServerSocket的构造方法是 ServerSocket intport port是一个端口号 port必须和客户呼叫的端口号相同 当服务器的ServerSocket对象server socket建立后 就可以使用方法accept 接收客户的套接字连接呼叫 所谓 接收 客户的套接字连接就是accept 会返回一个和客户端Socket对象相连接的驻留在服务器端的Socket对象 服务器端的这个Socket对象 32 11 6套接字 sc使用方法getOutputStream 获得的输出流将指向客户端Socket对象mysocket使用方法getInputStream 获得的那个输入流 同样 服务器端的这个Socket对象sc使用方法getInputStream 获得的输入流将指向客户端Socket对象mysocket使用方法getOutputStream 获得的那个输出流 33 11 6套接字 六 套接字连接示意图 34 11 7网络中的数据压缩与传输 当使用套接字进行网络通信时 可以使用ZipOutputStream流进行数据压缩 将套接字返回的输出流作为ZipOutputStream流的底层流 然后ZipOutputStream流out将数据压缩到底层流发送到目的地 使用ZipOutputStream类可以若干个文件压缩到底层流发送到目的地 首先使用ZipOutputStream类的构造方法publicZipOutputStream OutputStreamout 创建一个对象 该对象以套接字返回的输出流作为目的地 即作为该流的底层流 35 11 8UDP数据报 基于UDP的通信和基于TCP的通信不同 基于UDP的信息传递更快 但不提供可靠性保证 也就是说 数据在传输时 用户无法知道数据能否正确到达目的地主机 也不能确定数据到达目的地的顺序是否和发送的顺序相同 基于UDP通信的基本模式是 1 将数据打包 称为数据包 好比将信件装入信封一样 然后将数据包发往目的地 2 接受别人发来的数据包 好比接收信封一样 然后查看数据包中的内容 36 11 8UDP数据报 1 发送数据包用DatagramPacket的构造方法创建待发送的数据包 DatagramPacket bytedata intlength InetAddtressaddress intport 使用该构造方法创建的数据报对象具有下列两个性质 1 含有data数组指定的数据 2 该数据包将发送到地址是address 端口号是port的主机上 用DatagramSocket类的不带参数的构造方法 DatagramSocket 创建一个对象 该对象负责发送数据包 37 11 8UDP数据报 2 接收数据包用DatagramSocket类另一个构造方法 DatagramSocket intport 创建一个对象 其中的参数必须和待接收的数据包的端口号相同 DatagramSocket对象使用方法receive DatagramPacketpack 接受数据包 38 11 9广播数据报 Internet的地址是a b c d的形式 当a小于128 那么b c d就用来表示主机 这类地址称做A类地址 如果a大于

温馨提示

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

评论

0/150

提交评论