计算机软件及应用Java网络程序设计基础Java网络程序设计ppt课件.ppt

上传人:小飞机 文档编号:1439223 上传时间:2022-11-24 格式:PPT 页数:62 大小:547KB
返回 下载 相关 举报
计算机软件及应用Java网络程序设计基础Java网络程序设计ppt课件.ppt_第1页
第1页 / 共62页
计算机软件及应用Java网络程序设计基础Java网络程序设计ppt课件.ppt_第2页
第2页 / 共62页
计算机软件及应用Java网络程序设计基础Java网络程序设计ppt课件.ppt_第3页
第3页 / 共62页
计算机软件及应用Java网络程序设计基础Java网络程序设计ppt课件.ppt_第4页
第4页 / 共62页
计算机软件及应用Java网络程序设计基础Java网络程序设计ppt课件.ppt_第5页
第5页 / 共62页
点击查看更多>>
资源描述

《计算机软件及应用Java网络程序设计基础Java网络程序设计ppt课件.ppt》由会员分享,可在线阅读,更多相关《计算机软件及应用Java网络程序设计基础Java网络程序设计ppt课件.ppt(62页珍藏版)》请在三一办公上搜索。

1、Java网络程序设计,信息工程系 孙琳 2013-08,第一章 Java网络程序设计基础,信息工程系 孙琳 2013-08,1 Java网络程序设计基础,1.1 Java语言1.2 网络基础知识1.3 网络程序设计基础,1.1 Java语言,1.1.1 Java语言的优点简单性面向对象多线程分布性体系结构中立安全性,1.1.2 Java中常用的包,java.lang包含一些java语言的核心类,如String、Math、Integer、System和Thread,提供常用功能;java.util包含一些实用的工具类,如定义系统特性,使用与日期日历相关的函数java.io包含能提供多种输入/输出

2、功能的类;包含执行与网络相关的操作的类;java.awt包含了构成抽象窗口工具集(abstract window toolkits)的多个类,这些类被用来构建和管理应用程序的图形用户界面(GUI)。java.swing 含swing图形用户界面编程的相关类/接口java.applet包含applet运行所需的一些类;java.sql 数据库访问,1.1.3 Java中的数据流,Java数据流的应用表现键盘读取数据从文件获取数据和向文件存入数据在显示器上显示数据从网络上进行数据传输,数据流是指一组有顺序的、有起点和终点的字节集合,流是传递数据的载体,流是数据经历的路径,数据源,目的地,读数据,写

3、数据,数据流,1.1.3 Java中的数据流,输入数据流将数据从数据源传递给程序,可以从键盘或者文件中获得数据。输入流只能读不能写。输出数据流经数据从程序送到数据接收者,如可以向显示器屏幕或文件传输数据。输出流只能写不能读 。流的处理过程:打开数据流,读取或写入,关闭数据流,1.1.3 Java中的数据流,Java使用流(stream)来执行输入输出(I/O)的功能,流是一种数据的源头和目的之间的通信途径。所有输入数据流都是抽象类InputStream或Reader的子类所有输出数据流都是抽象类OutputStream或Writer的子类当使用流时需要使用java.io包,因此在涉及数据流操作

4、的程序中都要先导入java.io包:import java.io.*;,写信息:OutputStream的writer()方法读信息:InputStream的read()方法创建InputStream:使用get InputStream()创建创建OutputStream:使用get OutputStream()创建,读写BufferedReader和BufferedWriter缓冲区数据时,就减少了对数据源的访问量,具有缓冲的流比没有缓冲的流效率更高FilterInputStream和FilterOutputStream由一个非缓存的InputStream和OutputStream实例构造成

5、。通过缓存和刷新提供性能。DataInputStream和DataOutputStream为读写原始数据类型提供高级服务。FileReader、FileWriter、FileInputStream和FileOutputStream负责从文件中读写到文件中。,1.1.4 Java程序的开发过程,Java文件编译成.class文件,执行.class文件。运行命令:java hello,1.1.5 Java开发工具,在用户变量中加入“classpath”的变量名,变量值为“.;D:Javajdk1.6.0_21bin;”。在系统变量中找到“path”变量,在变量值前加上“D:Javajdk1.6.0

6、_21bin;”。然后确定,这样环境变量就配置好了,并且在每次打开命令提示符都会生效。,步骤/方法,编写程序:在程序编辑器中编写源代码如下:public class hellopublic static void main(String args) /本行代码String的S一定要大写System. out. println(“Hello World!”); /本行System的S 也一定要大写,编译程序:环境配置好后就是编译,输入命令“javac hello.java”,回车,这时回到Java源文件的存放目录会发现多了一个“hello.class”的类文件,接下来就要执行类文件了。执行程序:

7、在命令提示符中输入“java hello”,回车。Hello World!就会呈现在你眼前,一个简单的Java应用程序就运行成功了。,集成开发环境,MyEclipseEclipse,1.2 网络基础知识,1.2.1 ISO/OSI参考模型1.2.2 TCP/IP参考模型1.2.3 TCP/IP协议1.2.4 IP地址1.2.5 域名1.2.6 端口,1.2.1 ISO/OSI参考模型,1977年,国际标准化组织提出了开放系统互连参考模型(OSI,Open System Interconnection)的概念,1984年10月正式发布了整套OSI国际标准。,2022/11/24,20,OSI参考

8、模型,OSI参考模型将网络的功能划分为7个层次:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。,图 OSI参考模型,2022/11/24,21,物理层,位于OSI参考模型的最底层,提供一个物理连接,所传数据的单位是比特。 其功能是对上层屏蔽传输媒体的区别,提供比特流传输服务。也就是说,有了物理层后,数据链路层及以上各层都不需要考虑使用的是什么传输媒体,无论是用双绞线、光纤,还是用微波,都被看成是一个比特流管道。,2022/11/24,22,数据链路层,负责在各个相邻节点间的线路上无差错地传送以帧(Frame)为单位的数据。每一帧包括一定数量的数据和一些必要的控制信息。其功能是对物

9、理层传输的比特流进行校验,并采用检错重发等技术,使本来可能出错的数据链路变成不出错的数据链路,从而对上层提供无差错的数据传输。换句话说,就是网络层及以上各层不再需要考虑传输中出错的问题,就可以认定下面是一条不出错的数据传输信道,把数据交给数据链路层,它就能完整无误地把数据传给相邻节点的数据链路层。,2022/11/24,23,网络层,计算机网络中进行通信的两台计算机之间可能要经过多个节点和链路,也可能要经过多个通信子网,网络层数据的传送单位是分组或包(Packet),它的任务就是要选择合适的路由,使发送端的传输层传下来的分组能够正确无误地按照目的地址发送到接收端,使传输层及以上各层设计时不再需

10、要考虑传输路由。,2022/11/24,24,传输层,在发送端和接收端之间建立一条不会出错的路由,对上层提供可靠的报文传输服务。与数据链路层提供的相邻节点间比特流的无差错传输不同,传输层保证的是发送端和接收端之间的无差错传输,主要控制的是包的丢失、错序、重复等问题。,2022/11/24,25,会话层,会话层虽然不参与具体的数据传输,但它却对数据传输进行管理。会话层建立在两个互相通信的应用进程之间,组织并协调其交互。例如,在半双工通信中,确定在某段时间谁有权发送,谁有权接收;或当发生意外时(如已建立的连接突然断了),确定在重新恢复会话时应从何处开始,而不必重传全部数据。,2022/11/24,

11、26,表示层,表示层主要为上层用户解决用户信息的语法表示问题,其主要功能是完成数据转换、数据压缩和数据加密。表示层将欲交换的资料从适合于某一用户的抽象语法变换为适合于OSI系统内部使用的传送语法。有了这样的表示层,用户就可以把精力集中在他们所要交谈的问题本身,而不必更多地考虑对方的某些特性。,返 回,2022/11/24,27,应用层,应用层是OSI参考模型中的最高层。应用层确定进程之间的通信性质以满足用户的需要,负责用户信息的语义表示,并在两个通信者之间进行语义匹配。这就是说,应用层不仅要提供应用进程所需要的信息交换等操作,而且还要作为互相作用的进程的用户代理,来完成一些为进行语义上有意义的

12、信息交换所必需的功能。,返 回,2022/11/24,28,OSI模型各层主要功能的归纳总结,应用层:与用户应用进程的接口,即相当于“做什么?”表示层:数据格式的转换,即相当于“对方看起来像什么?”会话层:会话的管理与数据传输的同步,即相当于“轮到谁讲话和从何处讲?”传输层:从端到端经网络透明地传送报文,即相当于“对方在何处?”网络层:分组交换和路由选择,即相当于“走哪条路可到达该处?”数据链路层:在链路上无差错的传送帧,即相当于“每一步该怎么走?”物理层:将比特流送到物理媒体上传送,即相当于“对上一层的每一步应该怎样利用物理媒体?”,2022/11/24,29,OSI模型各层主要功能的归纳总

13、结,OSI参考模型的网络功能可分为三组,下两层解决网络信道问题,第三、四层解决传输服务问题,上三层处理应用进程的访问,解决应用进程通信问题。,2022/11/24,30,TCP/IP参考模型,TCP/IP协议是1974年由Vinton Cerf和Robert Kahn开发的,随着Internet的飞速发展,TCP/IP协议现已成为事实上的国际标准。TCP/IP协议实际上是一组协议,是一个完整的体系结构。,图TCP/IP参考模型及各层对应的协议,2022/11/24,31,OSI参考模型与TCP/IP参考模型的比较,TCP/IP参考模型中没有数据链路层和物理层,只有网络与数据链路层的接口,可以使

14、用各种现有的链路层、物理层协议。TCP/IP模型的网际层(也称互联层)对应于OSI模型的网络层,包括IP(网际协议)、ICMP(网际控制报文协议)、IGMP(网际组报文协议)以及ARP(地址解析协议),这些协议处理信息的路由以及主机地址解析。传输层对应于OSI模型的传输层,包括TCP(传输控制协议)和UDP(用户数据报协议),这些协议负责提供流控制、错误校验和排序服务,完成源到目标间的传输任务。应用层对应于OSI模型的应用层、表示层和会话层,它包括了所有的高层协议,并且不断有新的协议加入。,1.2.3 TCP/IP协议,TCP/IP协议(Transfer Controln Protocol/I

15、nternet Protocol)叫做传输控制/网际协议,又叫网络通讯协议,这个协议是Internet国际互联网络的基础。TCP/IP是网络中使用的基本的通信协议。虽然从名字上看TCP/IP包括两个协议,传输控制协议(TCP)和网际协议(IP),但TCP/IP实际上是一组协议,它包括上百个各种功能的协议,如:远程登录、文件传输和电子邮件等,而TCP协议和IP协议是保证数据完整传输的两个基本的重要协议。通常说TCP/IP是Internet协议族,而不单单是TCP和IP。TCP/IP是用于计算机通信的一组协议,我们通常称它为TCP/IP协议族。,TCP,TCP(Transmission Contr

16、ol Protocol,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次“对话”才能建立起来。发送方和接收方的成对的两个Socket之间必须建立连接,以便在TCP协议的基础上进行连接。当一个socket(通常是server socket)等待建立连接时,另一个socket可以要求进行连接。一旦这两个socket连接起来,就可以进行双向数据传输,双方都可以进行发送或接受操作。,UDP,UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发

17、送过去。UDP适用于一次只传送少量数据、对可靠性要求不高的应用环境。比如,我们经常使用“ping”命令来测试两台主机之间TCP/IP通信是否正常,其实“ping”命令的原理就是向对方主机发送UDP数据包,然后对方主机确认收到数据包,如果数据包是否到达的消息及时反馈回来,那么网络就是通的。QQ就使用UDP发消息,因此有时会出现收不到消息的情况。,TCP与UDP区别,使用UDP时,每个数据报中都给出了完整的地址信息,因此无需要建立发送方和接收方的连接。对于TCP协议,由于它是一个面向连接的协议,在socket之间进行数据传输之前必然要建立连接,所以在TCP中多了一个连接建立的时间。使用UDP传输数

18、据时是有大小限制的,每个被传输的数据报必须限定在64KB之内。而TCP没有这方面的限制,一旦连接建立起来,双方的socket就可以按统一的格式传输大量的数据。UDP是一个不可靠的协议,发送方所发送的数据报并不一定以相同的次序到达接收方。而TCP是一个可靠的协议,它确保接收方完全正确地获取发送方所发送的全部数据。 总之,TCP在网络通信上有极强的生命力,例如远程连接(Telnet)和文件传输(FTP)都需要不定长度的数据被可靠地传输。相比之下UDP操作简单,而且仅需要较少的监护,因此通常用于局域网高可靠性的分散系统中client/server应用程序。,1.2.4 IP地址,每一台主机都有一个唯

19、一标识固定的IP地址,以区别网络上的其他计算机。IP地址是一种层次性地址,由网络号和主机号组成。,2022/11/24,计算机文化基础,37,IP地址具有固定、规范的格式,它由32位二进制数组成,分成4段,其中每8位构成一段,这样每段所能表示的十进制数的范围最大不超过255,段与段之间用“.”隔开。为了便于识别和表达,IP地址以十进制形式表示,每8位为一组用一个十进制数表示。例如: 11001010.01110111.00000010.11000111是一个IP地址,它对应的十进制数的IP地址为202.119.2.199。,IP地址,2022/11/24,计算机文化基础,38,IP地址常用A、

20、B、C三类,它们均由网络号和主机号两部分组成,规定每一组都不能用全0和全1,通常全0表示网络本身的IP地址,全1表示网络广播的IP地址。为了区分类别A、B、C,三类的最高位分别为0、10、110。,IP地址分类,2022/11/24,计算机文化基础,39,A类IP地址 : 用8位来标识网络号,24位标识主机号,最前面一位为“0”,这样A类IP地址所能表示的网络数范围为0127,即1.x.y.z126.x.y.z格式的IP地址都属于A类IP地址。A类IP地址通常用于大型网络。,IP地址分类-A,2022/11/24,计算机文化基础,40,B类IP地址 用16位来标识网络号,16位标识主机号,最前

21、面两位为“10”。网络号和主机号的数量大致相当,分别用两个8位来表示,第一个8位表示的数的范围为128191。B类IP地址适用于中等规模的网络,每个网络所能容纳的计算机数为6万多台。例如各地区的网络管理中心。,IP地址分类-B,2022/11/24,计算机文化基础,41,C类IP地址 用24位来标识网络号,8位标识主机号,最前面三位为“110”。网络号的数量要远大于主机号,如一个C类IP地址共可连上254台主机。C类IP地址的第一个8位表示数的范围数为192223。C类IP地址一般适用于校园网等小型网络。,IP地址分类-C,2022/11/24,计算机文化基础,42,综上所述:从第一段的十进制

22、数字即可分出IP地址的类别。表A、B、C类IP地址,IPv6,下一代IP协议使用16字节存储IP地址,成为IPv6, Java网络包中分别提供了Inet4Address类和Inet6Address类进行处理。,特殊ip地址,127.0.0.1 ,特殊ip地址,成为本地回路地址,localhost,用于网络软件测试及本机进程之间的通信。127.0.0.1127.255.255.254的所有IP地址都是环回地址。,1.2.5 域名,Internet在IP地址的基础上提供了一种面向用户的字符型主机命名机制,这就是域名系统,它是一种更高级的地址形式。域名不能直接被网络设备所识别,需要由域名服务器DNS

23、转换成IP地址来访问IP地址与主机名是一一对应的,通过域名解析可以由主机名得到机器的IP,对机器而言只有IP地址才是有效的标识符。,1.2.6 端口,计算机“端口”是英文port的义译,可以认为是计算机与外界通讯交流的出口。硬件领域的端口又称接口,如:USB端口、串行端口等。软件领域的端口一般指网络中面向连接服务和无连接服务的通信协议端口,是一种抽象的软件结构,包括一些数据结构和I/O(基本输入输出)缓冲区。每个服务都同一个特定的端口编号关联在一起,客户程序事先知道所需服务的端口号。仅有ip和主机名标识进程不够,需要“IP地址+端口号” 来标识网络通信对象进程。端口不是一一对应的。,06553

24、5之间任意数字,有的系统将1024以下的端口保留给系统服务使用。在网络技术中,端口(Port)有好几种意思。集线器、交换机、路由器的端口指的是连接其他网络设备的接口,如RJ-45端口、Serial端口等。我们 这里所指的端口不是指物理意义上的端口,而是特指TCP/IP协议中的端口,是逻辑意义上的端口。如果把IP地址比作一间房子 ,端口就是出入这间房子的门。真正的房子只有几个门,但是一个IP地址的端口可以有65536(即216)个。端口是通过端口号来标记的,端口号只有整数,范围是从0 到65535(216-1)。,端口分类,1.按端口号分布划分(1)知名端口(Well-KnownPorts):知

25、名端口即众所周知的端口号,范围从0到1023,这些端口号一般固定分配给一些服务。比如21端口分配给FTP服务,25端口分配给SMTP(简单邮件传输协议)服务,80端口分配给HTTP服务,135端口分配给RPC(远程过程调用)服务等等。(2)动态端口(DynamicPorts):动态端口的范围从1024到65535,这些端口号一般不固定分配给某个服务,也就是说许多服务都可以使用这些端口。只要运行的程序向系统提出访问网络的申请,那么系统就可以从这些端口号中分配一个供该程序使用。比如1024端口就是分配给第一个向系统发出申请的程序。在关闭程序进程后,就会释放所占用的端口号。2.按协议类型划分按协议类

26、型划分,可以分为TCP、UDP、IP和ICMP(Internet控制消息协议)等端口。下面主要介绍TCP和UDP端口:(1)TCP端口TCP端口,即传输控制协议端口,需要在客户端和服务器之间建立连接,这样可以提供可靠的数据传输。常见的包括FTP服务的21端口,Telnet服务的23端口,SMTP服务的25端口,以及HTTP服务的80端口等等。(2)UDP端口UDP端口,即用户数据包协议端口,无需在客户端和服务器之间建立连接,安全性得不到保障。常见的有DNS服务的53端口,SNMP(简单网络管理协议)服务的161端口,QQ使用的8000和4000端口等等,1.3 网络程序设计基础,1.3.1 客

27、户机服务器模型1.3.2 服务器1.3.3 客户机1.3.4 套接字,1.3.1 客户机服务器模型,客户程序被调用后,主动向远地服务器发起通信不需要特殊的硬件和很复杂的操作系统服务器程序专门用来提供某种服务,可同时处理多个远地或本地客户的请求系统启动后自动调用并不断运行,等待客户通信请求需要强大的硬件和高级的操作系统支持,1.3.2 服务器,服务器指一个管理资源并为用户提供服务的计算机系统,通常分为文件服务器、数据库服务器和应用程序服务器。运行以上软件的计算机或计算机系统也被称为服务器。相对于普通PC来说,服务器在稳定性、安全性、性能等方面都要求更高,因为CPU、芯片组、内存、磁盘系统、网络等

28、硬件和普通PC有所不同。,1.3.3 客户机,连接服务器的计算机。客户机使用服务器共享的文件、打印机和其他资源。客户机又称为用户工作站,是用户与网络打交道的设备,一般由微机担任,每一个客户机都运行在它自己的、并为服务器所认可的操作系统环境中。客户机主要享受网络上提供的各种资源。这是网络软件运行的一种形式。通常,采用客户机/服务器结构的系统,有一台或多台服务器以及大量的客户机。服务器配备大容量存储器并安装数据库系统,用于数据的存放和数据检索;客户端安装专用的软件,负责数据的输入、运算和输出。,网络客户机使用双方协商好的通信标准与服务器对话。Web服务器通常运行在80端口上,其他一些服务器可能运行

29、在非标准的端口上,URL的习惯是不列出端口,它假定使用80端口。,1.3.4 套接字,Java网络编程在很大程度上就是套接字(Socket)编程。套接字是让用户与网络通信的一种对象,它并不是物理设备,可以将其理解为网络连接的端点。两个Java应用程序可通过一个双向的网络通信连接实现数据交换,这个双向链路的一端称为一个socket。socket通常用来实现client-server连接(C/S)。,套接字,是支持TCP/IP的网络通信的基本操作单元,可以看做是不同主机之间的进程进行双向通信的端点,简单的说就是通信的两方的一种约定,用套接字中的相关函数来完成通信过程。简单的举例说明下:Socket

30、=Ip address+ TCP/UDP port。,58,Socket,包中定义的两个类Socket和ServerSocket,分别用来实现双向连接的client和server端建立连接时所需的寻址信息远程计算机的机器名或IP地址试图连接的端口号(Port number)构造方法:Socket(InetAddressaddress, intport) 创建一个流套接字并将其连接到指定 IP 地址的指定端口号。Socket(Stringhost, intport) 创建一个流套接字并将其连接到指定主机上的指定端口号 ServerSocket(intport) 创建绑定到特定端口的服务器套接字。

31、ServerSocket(intport, intbacklog) 利用指定的 backlog 创建服务器套接字并将其绑定到指定的本地端口号。,在Java中,我们创建一个套接字,用它建立与其他机器的连接。从套接字得到的结果是一个InputStream以及OutputStream(若使用恰当的转换器,则分别是Reader和Writer),以便将连接作为一个IO流对象对待。有两个基于数据流的套接字类:ServerSocket,服务器用它“侦听”进入的连接;Socket,客户机用它初始一次连接。一旦客户机(程序)申请建立一个套接字连接,ServerSocket就会返回(通过accept()方法)一个

32、对应的服务器端套接字,以便进行直接通信。从此时起,我们就得到了真正的“套接字套接字”连接,可以用同样的方式对待连接的两端,因为它们本来就是相同的。此时可以利用getInputStream()以及getOutputStream()从每个套接字产生对应的InputStream和OutputStream对象。创建一个ServerSocket时,只需为其赋予一个端口编号。不必把一个IP地址分配它,因为它已经在自己代表的那台机器上了。但在创建一个Socket时,却必须同时赋予IP地址以及要连接的端口编号。,61,无论一个Socket通信程序的功能多么齐全、程序多么复杂,其基本结构都是一样的,都包括以下四

33、个基本步骤:1、在客户方和服务器方创建Socket/ServerSocket。2、打开连接到Socket的输入/输出流。3、利用输入/输出流,按照一定的协议对Socket进行读/写操作。4、关闭输入/输出流和Socket。 通常,程序员的主要工作是针对所要完成的功能在第3步进行编程,第1、2、4步对所有的通信程序来说几乎都是一样的,Java网络模型,62,Socket在应用程序中创建,通过一种绑定机制与驱动程序建立关系,告诉自己所对应的IP和端口号。此后,应用程序送给Socket的数据,由Socket交给驱动程序向网络上发送出去。计算机从网络上收到与该Socket绑定的IP和端口号相关的数据后,由驱动程序交给Socket,应用程序便可从该Socket中提取接收到的数据。(三步握手建立连接),

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号