收藏 分享(赏)

Java网络程序设计第1章PPT课件.ppt

上传人:Facebook 文档编号:3723088 上传时间:2018-11-16 格式:PPT 页数:46 大小:826.50KB
下载 相关 举报
Java网络程序设计第1章PPT课件.ppt_第1页
第1页 / 共46页
Java网络程序设计第1章PPT课件.ppt_第2页
第2页 / 共46页
Java网络程序设计第1章PPT课件.ppt_第3页
第3页 / 共46页
Java网络程序设计第1章PPT课件.ppt_第4页
第4页 / 共46页
Java网络程序设计第1章PPT课件.ppt_第5页
第5页 / 共46页
点击查看更多>>
资源描述

1、Java网络程序设计,课程简介,Java网络程序设计作为Java程序设计和计算机网络的后续课程,是计算机网络工程专业的主干课程 本课程主要介绍了Java网络程序设计基础、Internet寻址、URL通信、流套接字编程、数据报套接字编程、多线程编程、JDBC、JSP和Servlet技术。,第1章 Java网络程序设计基础,1.1 Java语言,Java是适用于网络环境的一种编程语言,具有强大的网络功能。 Java通过面向对象的方法,隐藏了网络通信程序中的一些细节,为用户提供了平台无关的接口。 在网络通信中,Java不仅提供了面向连接和无连接数据报的底层通信,而且还提供了高层服务。通过Java提供

2、的网络功能,可以以流的方式来进行网络数据的传输,而不需要关注连网的细节问题。,1.1.1 Java语言的优点,简单性 Java 与C+语言非常相近,但Java比C+简单,它抛弃了C+中的一些不是绝对必要的功能 Java实现了自动的垃圾收集,简化了内存管理的工作 面向对象 Java提供了简单的类机制和动态的构架模型 对象中封装了它的状态变量和方法,很好地实现了模块化和信息隐藏 Java只支持类的单重继承,即每个类只能从一个类中继承 Java支持接口,接口允许程序员定义方法但又不立即实现,一个类可以实现多个接口,1.1.1 Java语言的优点,多线程 多线程使应用程序可以同时进行不同的操作,处理不

3、同的事件 在多线程机制中,不同的线程处理不同的任务 分布性 Java是面向网络的语言 通过它提供的类库可以处理TCP/IP协议,用户可以通过URL地址在网络上很方便的访问其他对象,1.1.1 Java语言的优点,体系结构中立 用Java语言编写的程序可以在任何一台计算机上运行,而不管该计算机使用何种操作系统这是以往任何一种语言都不具备的特征 安全性 用于网络、分布环境下的Java必须要防止病毒的入侵 Java不支持指针,一切对内存的访问都必须通过对象的实例变量来实现,1.1.2 Java中常用的包,类库是Java API(Application Programing Interface,应用程

4、序接口),是系统提供的已实现的标准类的结合。 在程序设计中合理和充分利用类库提供的类和接口,不仅可以完成字符串处理、绘图、网络应用、数学计算等多方面的工作,而且可以大大提高编程效率,使程序简练、易懂。 Java语言的内核非常小,其功能的强大主要由类库体现 。,1.1.2 Java中常用的包,java.lang包 Java的核心类库,包含了运行Java程序必不可少的系统类 包括用于字符串处理、多线程、异常处理和数学函数等的类 该包是实现Java程序运行平台的基本包,系统缺省加载它,无需使用import导入 java.util包 实用工具包。在这个包中,Java提供了一些实用的方法和数据结构。 例

5、如Java提供日期(Data)类、日历(Calendar)类来产生和获取日期及时间,提供随机数(Random)类产生各种类型的随机数,1.1.2 Java中常用的包,java.io包 基于流模型的输入/输出包 该包用统一的流模型实现了各种格式的输入/输出,包括文件系统、网络和设备的输入/输出等 包 为实现网络应用程序提供的网络包 该包支持TCP/IP协议,其中提供了Socket、URL和WWW的编程接口 java.awt包 抽象窗口工具集,创建用户界面和绘制图形图像 其中实现了可以跨平台的图形用户界面组件,包括窗口、菜单、滚动条和对话框等,1.1.2 Java中常用的包,javax.swing

6、包 含Swing图形用户界面编程的相关类/接口 java.applet包 Java applet是用Java语言编写的一些小应用程序,它们可以直接嵌入到网页中,并能够产生特殊的效果 java.sql包 提供使用Java编程语言访问并处理存储在数据源(通常是一个关系数据库)中的数据的 API。 此 API 包括一个框架,凭借此框架可以动态地安装不同驱动程序来访问不同数据源,1.1.3 Java中的数据流,在Java中,所有输入/输出的核心就是数据流。可以将数据流看作一个管道,你可以将数据输入管道(即写入流),或从管道中取出信息(即从流中读出)。,1.1.3 Java中的数据流,通过构建Outpu

7、tStream(提供了write( )方法)写信息 通过构建InputStream(提供了read( )方法)读信息 当一个连接成功建立后,每一个终止点处都创建一个InputStream和OutputStream。 InputStream使用getInputStream( )来创建 OutputStream使用getOutputStream( )来创建,1.1.4Java程序的开发过程,Java编译器将Java源代码文件编译成可执行的Java字节码。 Java源代码文件扩展名为 .java,Java编译器把这种扩展名的文件编译成扩展名为.class的文件 一个 .java文件可能编译生成多个.

8、class文件,1.1.5 Java开发工具,JDK javac 编译器,将源程序(.java后缀的)转成字节码 jar 打包工具,将相关的类文件打包成一个文件 javadoc 文档生成器,从源码注释中提取文档 jdb debugger,查错工具 java 运行编译后的java程序(.class后缀的) 集成开发环境,第1章 Java网络程序设计基础,1.2 网络基础知识,计算机网络技术是通信技术与计算机技术相结合的产物。 计算机网络是按照网络协议,将地球上分散的、独立的计算机相互连接的集合。 把分布在不同地点且具有独立功能的多个计算机系统通过通信设备和线路连接起来,在功能完善的软件和协议的管

9、理下实现网络中资源共享系统。,1.2.1 ISO/OSI参考模型,开放系统互联-开放:一个网络只要遵循OSI模型,就可以与位于世界上任何地方的也遵循OSI模型的其他网络系统连接。 对等层:位于不同主机之间的相同层。其中模型中每一层使用下层提供的服务,并为上层提供服务。 第1层 物理层 处于OSI参考模型的最底层。物理层的主要功能是利用物理传输介质为数据链路层提供物理连接,以便透明的传送比特流。规定通信节点之间的机械和电气等特性,如规定电缆和接头的类型,传送信号的电压等。本层的典型设备是集线器。,1.2.1 ISO/OSI参考模型,第2层 数据链路层 在此层将数据分帧,并处理流控制。本层指定拓扑

10、结构并提供硬件寻址。负责在相邻的节点间的线路上,无差错地传送以帧为单位的数据。本层的典型设备是交换机。 第3层 网络层 本层通过寻址来建立两个节点之间的连接,它包括通过互连网络来路由和中继数据。任务是选择合适的网间路由和交换节点。本层的典型设备是路由器。(数据单位:数据包) 第4层 传输层 常规数据递送面向连接或无连接。信息传送单位:数据报文。,1.2.1 ISO/OSI参考模型,第5层 会话层 在两个节点之间建立端连接。管理进程之间的会话过程,负责建立、管理、终止进程之间的会话。此服务包括建立连接是以全双工还是以半双工的方式进行设置。 第6层 表示层 主要用于处理两个通信系统中交换信息的表示

11、方式。它包括数据格式交换、数据加密与解密、数据压缩与恢复等功能。 第7层 应用层 OSI中的最高层。应用层确定进程之间通信的性质,以满足用户的需要。如浏览web站点、收发email、上传或者下载文件等。,1.2.1 ISO/OSI参考模型,数据在上下层之间的封装和解封装过程,1.2.1 ISO/OSI参考模型,1.2.2 TCP/IP参考模型,网络接口层 该层与OSI参考模型中的物理层和数据链路层相对应。事实上,TCP/IP本身并未定义该层的协议,而由参与互连的各网络使用自己的物理层和数据链路层协议,然后与TCP/IP的网络访问层进行连接。笫三方协议如以太网 IEEE 802.3 令牌环网IE

12、EE 802.4 网络层: 该层对应于OSI参考模型的网络层,解决主机到主机的通信问题。该层有五个主要协议:网际协议(IP)、地址解析协议(ARP)、反向地址解析协议(RARP)、互联网组管理协议(IGMP)和互联网控制报文协议(ICMP)。其中IP协议,用于规定数据包的格式及数据包寻找路由的流程。,1.2.2 TCP/IP参考模型,传输层 该层对应于OSI参考模型的传输层,为应用层实体提供端到端的通信功能。该层定义了两个主要的协议:传输控制协议(TCP)和用户数据报协议(UDP)。TCP协议提供的是一种可靠的、面向连接的数据传输服务;而UDP协议供的是不可靠的、无连接的数据传输服务。 应用层

13、 该层对应于OSI参考模型的高层,为用户提供所需要的各种服务,例如:FTP、Telnet、DNS、SMTP等。,1.2.2 TCP/IP参考模型,1.2.3 TCP/IP协议,构建网络是为了实现通信,不同计算机之间通信必须基于一定的标准。网络协议就是计算机通信双方在通信时必须遵循的一组规范。 TCP/IP协议(Transmission Control Protocol/Internet Protocol)叫做传输控制/网际协议,又叫网络通讯协议。 TCP/IP实际上是一组协议,它包括上百个各种功能的协议 而TCP协议和IP协议是保证数据完整传输的两个最重要的协议,1.2.3 TCP/IP协议,

14、本课程相关的最为重要的两个协议为传输层的TCP和UDP TCP是Tranfer Control Protocol的简称,是一种面向连接的保证可靠传输的协议。通过TCP协议传输,得到的是一个顺序的无差错的数据流。 UDP是User Datagram Protocol的简称,是一种无连接的协议,每个数据报都是一个独立的信息,包括完整的源地址或目的地址,它在网络上以任何可能的路径传往目的地,因此能否到达目的地,到达目的地的时间以及内容的正确性都是不能被保证的。,1.2.3 TCP/IP协议,TCP在网络通信上有极强的生命力,相比之下UDP操作简单,而且仅需要较少的监护,因此通常用于局域网高可靠性的分

15、散系统中Client/Server应用程序 可靠的传输是要付出代价的,对数据内容正确性的检验必然占用计算机的处理时间和网络的带宽,因此TCP传输的效率不如UDP高 许多应用中并不需要保证严格的传输可靠性,比如视频会议系统,并不要求音频视频数据绝对的正确,只要保证连贯性就可以了,这种情况下显然使用UDP会更合理一些,1.2.4 IP地址,目前正在使用的IP地址是4个字节,又被称为IPv4 IP地址的长度为32位,分为4段,每段8位,用十进制数字表示,每段数字范围为0255,段与段之间用句点隔开 Java网络包中分别提供了Inet4Address类和Inet6Address类对它们进行处理 网络编

16、程进行测试时经常需提到一个IP地址就是127.0.0.1,127.0.0.1是一种特殊IP地址,被称为本地回路地址,又被称为“localhost”,主要用于网络软件测试及本机进程之间的通信,1.2.5 域名,由于IP地址是数字标识,使用时难以记忆和书写,因此在IP地址的基础上又发展出一种符号化的地址方案,来代替数字型的IP地址。 在Internet上IP地址和主机名是一一对应的,通过域名解析可以由主机名得到机器的IP,由于机器名更接近自然语言,容易记忆,所以使用比IP地址广泛,但是对机器而言只有IP地址才是有效的标识符 。,1.2.6 端口,通常一台主机上总是有很多个进程需要网络资源进行网络通

17、讯。网络通讯的对象准确的讲不是主机,而应该是主机中运行的进程 这时候光有主机名或IP地址来标识这么多个进程显然是不够的。 端口号就是为了在一台主机上提供更多的网络资源而采取得一种手段,也是TCP层提供的一种机制。 只有通过主机名或IP地址和端口号的组合才能唯一的确定网络通讯中的对象:进程。,1.2.6 端口,端口号可以是065535之间的任意一个整数 知名端口(Well-Known Ports):知名端口即众所周知的端口号,范围从0到1023,这些端口号一般固定分配给一些服务。比如21端口分配给FTP服务,25端口分配给SMTP(简单邮件传输协议)服务,80端口分配给HTTP服务 动态端口(D

18、ynamic Ports):动态端口的范围从1024到65535,这些端口号一般不固定分配给某个服务,也就是说许多服务都可以使用这些端口。只要运行的程序向系统提出访问网络的申请,那么系统就可以从这些端口号中分配一个供该程序使用,第1章 Java网络程序设计基础,1.3网络程序设计基础,网络程序设计的目的就是直接或间接地通过网络协议与其他计算机进行通讯。也就是在TCP/IP协议基础上实现应用层。这里传输层向应用层提供了套接字socket接口,该接口封装了下层的数据传输细节,应用层的程序通过socket来建立与远程主机的连接以及进行数据传输。 网络编程中有两个主要的问题,一个是如何准确的定位网络上

19、一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输。,1.3网络程序设计基础,TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的一台主机。 传输层则提供面向应用的可靠的或非可靠的数据传输机制,这是网络编程的主要对象,一般不需要关心IP层是如何处理数据的。,1.3.1 客户机/服务器模型,目前较为流行的网络编程模型是客户机/服务器(C/S)结构。即通信双方一方作为服务器等待客户提出请求并予以响应。 客户则在需要服务时向服务器提出申请。 服务器一般作为守护进程始终运行,监听网络端口,一旦有客户请求,就会启动一个服务线程来响应该客

20、户,同时自己继续监听服务端口,使后来的客户也能及时得到服务。 客户机(Client)和服务器(Server)都是指通信中所涉及的两个应用进程。客户服务器方式所描述的是进程之间服务和被服务的关系,1.3.1 客户机/服务器模型,客户程序: 被用户调用后运行,在通信时主动向远地服务器发起通信(请求服务)。因此,客户程序必须知道服务器程序的地址。 不需要特殊的硬件和很复杂的操作系统。 服务器程序: 是一种专门用来提供某种服务的程序,可同时处理多个远地或本地客户的请求。 系统启动后即自动调用并一直不断地运行着,被动地等待并接受来自各地的客户的通信请求。因此,服务器程序不需要知道客户程序的地址。 一般需

21、要强大的硬件和高级的操作系统支持。 客户与服务器的通信关系建立后,通信可以是双向的,客户和服务器都可以发送和接收数据。,1.3.2 套接字,套接字(Socket)是TCP/IP中的基本概念,它负责将TCP/IP包发送到指定的IP地址 套接字也可以看成是在两个程序进行通信连接中的一个端点,一个程序将信息写入Socket中,该Socket将这段信息发送到另一个Socket中,使这段信息能够传送到其他程序。 这两端的程序可以是在一台计算机上,也可以在因特网的远程计算机上。 有两个基于数据流的套接字类: ServerSocket,服务器用它侦听进入的连接; Socket,服务器、客户机用它完成数据的传

22、输。,1.3.2 套接字,一旦客户机申请建立一个套接字,ServerSocket就会返回(通过accept( )方法)一个对应的服务器端套接字,以便进行直接通信 可以利用getInputStream( )以及getOutputStream( )从每个套接字产生对应的InputStream和OutputStream对象 创建一个ServerSocket时,只需为其赋予一个端口号,不必把一个IP地址分配给它,因为它已经在自己代表的那台机器上。但在创建一个Socket时,却必须同时赋予IP地址以及连接的端口号。,本章小结,本章介绍了Java语言的特点:简单、面向对象、多线程、分布性、体系结构中立、安

23、全性等方面,Java中的常用的包以及Java集成开发环境Eclipse 网络基础知识中介绍了本书网络程序设计中用到的些概念:ISO/OSI参考模型、TCP/IP参考模型、TCP/IP协议、IP地址、域名、端口、套接字、服务器以及客户机等 网络程序设计基础中介绍了目前较为流行的网络编程模型是客户机/服务器(C/S)结构,练习题1,问题:Java网络程序位于TCP/IP参考模型的哪一层?(单选) 选项: a) 网络层互联层 b) 应用层 c) 传输层网络 d) 主机-网络层 答案: b,练习题2,问题:以下哪些协议位于传输层?(多选) 选项: a) TCP b) HTTP c) SMTP d) U

24、DP f)IP 答案: a,d,练习题3,问题:有一种协议规定:如果客户端发送一行字符串“date”,服务器端就返回当前日期信息,如果客户端发送一行字符串“exit”,服务器端就结束与客户端的通信。这种协议应该属于哪一层的协议?(单选) 选项: a) 网络层互联层 b) 应用层 c) 传输层网络 d) 主机-网络层 答案: b,练习题4,问题:HTTP协议规定,默认情况下,HTTP服务器占用的TCP端口号是什么?(单选) 选项: a)21 b)23 c)80 d)任意一个未被占用的端口号答案: c,练习题5,问题:在客户/服务器通信模式中,客户与服务器程序的主要任务是什么?(多选) 选项: a) 客户程序在网络上找到一条到达服务器的路由。 b) 客户程序发送请求,并接收服务器的响应。 c) 服务器程序接收并处理客户请求,然后向客户发送响应结果。 d) 如果客户程序和服务器都会保证发送的数据不会在传输途中丢失。 答案: b,c,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 网络科技 > Java

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报