Java网络编程原理与JSP Web开发核心技术 教学课件 ppt 作者 马晓敏 肖 明 姜远明 齐永波_ 04第四章 JAVA网路编程

上传人:E**** 文档编号:89396516 上传时间:2019-05-24 格式:PPT 页数:68 大小:426.50KB
返回 下载 相关 举报
Java网络编程原理与JSP Web开发核心技术 教学课件 ppt 作者 马晓敏 肖 明 姜远明 齐永波_ 04第四章 JAVA网路编程_第1页
第1页 / 共68页
Java网络编程原理与JSP Web开发核心技术 教学课件 ppt 作者 马晓敏 肖 明 姜远明 齐永波_ 04第四章 JAVA网路编程_第2页
第2页 / 共68页
Java网络编程原理与JSP Web开发核心技术 教学课件 ppt 作者 马晓敏 肖 明 姜远明 齐永波_ 04第四章 JAVA网路编程_第3页
第3页 / 共68页
Java网络编程原理与JSP Web开发核心技术 教学课件 ppt 作者 马晓敏 肖 明 姜远明 齐永波_ 04第四章 JAVA网路编程_第4页
第4页 / 共68页
Java网络编程原理与JSP Web开发核心技术 教学课件 ppt 作者 马晓敏 肖 明 姜远明 齐永波_ 04第四章 JAVA网路编程_第5页
第5页 / 共68页
点击查看更多>>
资源描述

《Java网络编程原理与JSP Web开发核心技术 教学课件 ppt 作者 马晓敏 肖 明 姜远明 齐永波_ 04第四章 JAVA网路编程》由会员分享,可在线阅读,更多相关《Java网络编程原理与JSP Web开发核心技术 教学课件 ppt 作者 马晓敏 肖 明 姜远明 齐永波_ 04第四章 JAVA网路编程(68页珍藏版)》请在金锄头文库上搜索。

1、,1,作者:肖明 学校:烟台大学计算机学院 日期:2010年2月,第四章 JAVA网路编程,2,第四章 JAVA网络编程,4.1 数据流 4.2 基于TCP协议的套接字通信 4.1 数据流 4.4 组播套接字 4.5 小结 习题四,3,第四章 JAVA网络编程,Java的基于TCP/IP协议的客户端与服务器模式下的网络编程原理,涉及到的类主要有两个包: 输入输出包:java.io 网络包:。,4,4.1 数据流,当前网络通信,都是由数据流(data stream)来处理的,因此,基于流通信(stream-based communication)是Java网络编程的基础。 数据流:是发送和接收信

2、息的管道或通道,当数据通信管道建立起来,数据就可以从管道的一端传输到另一端。 通信:是指在管道中流动的数据过程,这种数据流通信是以字节为基本数据单位,通过串行形式的数据序列顺序进行传输的过程。,4.1.1 数据流与网络技术的联系 4.1.2 流的工作方式 4.1.3 过滤器流、读取器和写入器 4.1.4 对象持久性和对象序列化,5,4.1.1 数据流与网络技术的联系,网络技术使得物理网络连通,在有效的协议控制下,实现信息传输,即套接字Socket的连接和通信。 网络编程:是基于这种连通和相关协议控制下的套接字Socket实现网络的底层连接,再以流(stream)为类的操作,进行数据传输和流的关

3、闭等。 从另一个角度看,流为网络通信提供了统一的接口,使得网络通信更加规范和一致。,6,4.1.1 数据流与网络技术的联系,在Java中,是以流(也就是类)来表示网络上的数据、文件或应用程序之间的通信。流划分为两种: 输入流(input stream):将数据从某个数据源发送到程序中; 输出流(output stream):将数据从程序中往外发送到某个目地端。 输入、输出流的划分,极大地方便了编程。可以灵活地,分别独立地从输入流中读数据,接受数据,向输出流中写数据,发送数据,实现单向(one-way)或双向(two-way)通讯等。,7,4.1.2 流的工作方式,在Java中,流是以字节级进行

4、数据通信,为此分别提供了:,字节输入流公用超类java.io.InputStream 字节输出流公用超类java.io.OutputStream 都是抽象类,也是基础性的底层字节输入输出类(流)。 定义了公共的公有方法,通过两级子类继承,来实现这些方法和子类自己的方法。,8,两级子类继承,字节输入、输出流公用超类继承关系,9,第一级继承,有4或6个子类不等,其中数据源包括: 字节数组(ByteArray) 字符串(String) 文件(File) 管道(Pipe) 过滤器(Filter) 其他等数据源,与网络通信有关的InputStream和OutputStream的子类是: 过滤器输入流Fi

5、lterInputStream 过滤器输出流FilterOutputStream 这两个类也是抽象类,10,第二级继承,在过滤器流的基础上继承,有10或8个子类,基本上都与网络通信有关,其中常用的是: 过滤器输入流FilterInputStream的子类: 数据输入流DataInputStream 缓冲输入流BufferedInputStream 数据输入流接口DataInput; 过滤器输出流FilterOutputStream的子类: 数据输出流DataOutputStream 缓冲输出流BufferedOutputStream 数据输出流接口Data Output;,11,与网络通信有关

6、的流工作方式,指创建过滤器输入流子类或过滤器输出流子类与套接字通信绑定的对象方式。 有了这些流对象就可以调用其方法完成底层字节流的套接字网络数据通信。 在具体设计上是两个程序,分别装在网络上的两台计算机上。 在互联网上,有三种模式: 点对点的P2P(peer-to-peer)模式,又称对等互联网络技术, 客户端和服务器(C/S)体系结构 浏览器和服务器(B/S)体系结构,12,4.1.3 过滤器流、读取器和写入器,过滤器流 具有缓冲区的过滤器流 BufferedInputStream和BufferedOutputStream流 对数据访问时可提高效率。 访问不同数据类型的过滤器流 DataIn

7、putStream和DataOutputStream流 提供了访问各种不同数据类型的方法 过滤器流的特点 在进行读写数据的同时,还可进行数据处理,方便了网络编程。,13,读取器Reader和写入器Writer,它们均为IO包中的类,都是抽象的公用超类。 它们也是通过其子类继承实现读入和写出。不同点是读写器以字符流操作 应用程序以字符形式输入和输出速度更快、功能更强,但需要将字符转换成字节来实现网络通信。,14,1过滤器流,指过滤器输入流FilterInputStream和过滤器输出流FilterOutputStream,这两个抽象类,以及所对应的子类。 过滤器输入流FilterInputStr

8、eam,通过其子类继承实现输入流操作,共有10个子类:,15,过滤器输入流FilterInputStream的子类, 数据输入流DataInputStream 定义:public class DataInputStream extends FilterInputStream implements DataInput 构造函数:DataInputStream(InputStream in) 方法如下: int read(byte b) boolean readBoolean() double readDouble() float readFloat() byte readByte(),short

9、 readShort() int readInt() long readLong() String readUTF(),16,过滤器输入流FilterInputStream的子类, 数据输出流DataOutputStream 定义:public class DataOutputStream extends FilterOutputStream implements DataOutput 构造函数:public DataOutputStream(OutputStream out) 方法如下: public final int size() 以下方法修饰为public,返回值为void: flus

10、h(),清空此数据输出流。 write(int b) write(byte b,int off,int len) writeBoolean(Boolean v) writeByte(int v) writeBytes(String s) writeChar(int v) public final void writeUTF(String str),writeDouble(double v) writeFloat(float v) writeInt(int v) writeLong(long v) writeShort(int v),17, 缓冲输入流BufferedInputStream,定义

11、: public class BufferedInputStream extends FilterInputStream 构造函数: public BufferedInputStream(InputStream in) public BufferedInputStream(InputStream in,int size) 创建一个带有基本输入流in为参数的缓冲输入流。此缓冲区是内部缓冲区数组buf。size为设定的缓冲区大小。 方法如下: read(),从输入流中读取一个数据字节。返回一个0到255范围内的int字节值。 read(byte b,int off,int len),从此字节输入流

12、中给定起始位置off,开始读取长度len个字节数到指定的byte数组中。b为目标缓冲区。off为开始存储字节处的偏移量。len要读取的最大字节数。,18, 缓冲输出流BufferedOutputStream,定义:public class BufferedOutputStream extends FilterOutputStream 构造函数: public BufferedOutputStream(OutputStream out) public BufferedOutputStream(OutputStream out, int size) 创建一个缓冲输出流,以将数据写入指定的底层输出流

13、。Out为底层输出流;size为设定的缓冲区大小。 方法如下: write(int b),将指定的字节写入此缓冲的输出流。 write(byte b, int off, int len),将指定byte数组中从位置off开始的长度len个字节写入此缓冲的输出流。b为数据;off为数据的起始偏移量;len为要写入的字节数。 flush(),刷新此缓冲的输出流。这迫使所有缓冲的输出字节被写出到底层输出流中。,19,2读取器和写入器,在网络通信中,是以字节为单位,就必须将字符流转换成字节流,才能实现读取器和写入器的网络通信。 重点讨论与实现网络编程有关的读写器子类和转换器。 读取器Reader的子类

14、(流),BufferedReader和InputStreamReader, 写入器Writer的子类BufferedWriter、OutputStreamWriter和PrintWriter 都与网络编程有关。,20,2读取器和写入器, 缓冲字符读取器BufferedReader 定义:public class BufferedReader extends Reader 构造函数: public BufferedReader(Reader in) public BufferedReader(Reader in,int sz) 方法如下:readLine(),读取一个文本行;read(),读取单

15、个字符。 字节流与字符流输入转换器InputStreamReader 定义:public class InputStreamReader extends Reader 构造函数: public InputStreamReader(InputStream in) public InputStreamReader(InputStream in, Charset cs) public InputStreamReader(InputStream in, CharsetDecoder dec) public InputStreamReader(InputStream in, String charset

16、Name) 对应的方法在此不讨论,可参考相关资料。,21,2读取器和写入器, 缓冲字符写入器BufferedWriter 定义:public class BufferedWriter extends Writer 构造函数: public BufferedWriter(Writer out) public BufferedWriter(Writer out,int sz) 方法如下: flush();write(char cbuf,int ff,int len);write(int c); write(String s,int off,int len) 字符流与字节流输出转换器OutputStreamWriter 定义:public class OutputStreamWriter extends Writer 构造函数: public OutputStreamWriter(OutputStream out) 对应的方法在此不讨论,可参考相关资料。,22,2读取器和写入器, 字符格式化文本输出流PrintWrite

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号