网络编程与IO
文章平均质量分 82
网络编程与IO
悬浮海
正在准备系列内容,更新较少。
展开
-
NIO 目录
一、原创 2022-04-09 20:13:05 · 409 阅读 · 0 评论 -
十二、BIO、NIO、AIO总结
NIO 目录文章目录BIO、NIO、AIO总结BIO、NIO、AIOBIO、NIO、AIO适用场景分析BIO、NIO、AIO总结BIO、NIO、AIOJava BIO : 同步并阻塞,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,当然可以通过线程池机制改善。Java NIO : 同步非阻塞,服务器实现模式为一个请求一个线程,即客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有I/O请求原创 2022-04-10 11:42:49 · 423 阅读 · 0 评论 -
十一、AIO编程
NIO 目录文章目录AIO编程AIO编程Java AIO(NIO.2) : 异步非阻塞,服务器实现模式为一个有效请求一个线程,客户端的I/O请求都是由OS先完成了再通知服务器应用去启动线程进行处理。AIO异步非阻塞,基于NIO的,可以称之为NIO2.0BIONIOAIOSocketSocketChannelAsynchronousSocketChannelServerSocketServerSocketChannelAsynchronousSer原创 2022-04-10 11:36:52 · 851 阅读 · 0 评论 -
十、Java NIO 综合案例-多人聊天室
NIO 目录文章目录十、Java NIO 综合案例1、服务端代码2、客户端代码2.1、AClient2.2、BClient2.3、ChatClient 类2.4、ClientThread 类十、Java NIO 综合案例使用 Java NIO 完成一个多人聊天室功能1、服务端代码package com.wlw.server;import java.io.IOException;import java.net.InetSocketAddress;import java.nio.Byte原创 2022-04-10 10:13:48 · 300 阅读 · 0 评论 -
九、Java NIO(Path、Files、AsynchronousFileChannel)
NIO 目录文章目录九、Java NIO(Path、Files、AsynchronousFileChannel)1、Path1.1、Path 简介1.2、创建 Path 实例1.3、创建绝对路径1.4、创建相对路径1.5、Path.normalize()2、Files2.1、Files.createDirectory()2.2、Files.copy()2.3、Files.move()2.4、Files.delete()2.5、Files.walkFileTree()3、AsynchronousFileC原创 2022-04-09 20:29:47 · 603 阅读 · 0 评论 -
八、Java NIO(Pipe 和 FileLock)
NIO 目录文章目录八、Java NIO(Pipe 和 FileLock)1、Pipe1.1、创建管道1.2、写入管道1.3、从管道读取数据1.4、示例代码2、FileLock2.1、FileLock 简介2.2、文件锁分类:2.3、使用示例:2.4、获取文件锁方法2.5、lock 与 tryLock 的区别:2.6、FileLock 两个方法:2.7、完整例子八、Java NIO(Pipe 和 FileLock)1、PipeJava NIO 管道是 2 个线程之间的单向数据连接。Pipe 有一原创 2022-04-09 20:27:57 · 169 阅读 · 0 评论 -
七、Java NIO(Selector)
NIO 目录文章目录七、Java NIO(Selector)1、Selector 简介1.1、Selector 和 Channel 关系1.2、可选择通道(SelectableChannel)1.3、Channel 注册到 Selector的操作1.4、选择键(SelectionKey)2、Selector 的使用方法2.1、Selector 的创建2.2、注册 Channel 到 Selector2.3、轮询查询就绪操作 select()2.4、停止选择的方法3、NIO 编程步骤4、示例代码4.1、服原创 2022-04-09 20:26:18 · 423 阅读 · 0 评论 -
六、Java NIO(Buffer)
NIO 目录文章目录六、Java NIO(Buffer)1、Buffer 简介2、Buffer 的基本用法3、Buffer 的 capacity、position 和 limit4、Buffer 的类型5、Buffer 分配和写数据5.1、Buffer 分配5.2、向 Buffer 中写数据5.3、flip()方法6、从 Buffer 中读取数据7、Buffer 几个方法7.1、rewind()方法7.2、clear()与 compact()方法7.3、mark()与 reset()方法8 缓冲区操作8原创 2022-04-09 20:23:27 · 191 阅读 · 0 评论 -
五、JAVA NIO(三种SocketChannel)
NIO 目录文章目录五、JAVA NIO(三种Socket通道)1、ServerSocketChannel1.1、打开 ServerSocketChannel1.2、关闭 ServerSocketChannel1.3、监听新的连接1.4、阻塞模式1.4、非阻塞模式2、SocketChannel2.1、SocketChannel 介绍2.2、SocketChannel 特征:2.3、SocketChannel 的使用3、DatagramChannel3.1、打开 DatagramChannel3.2、接收原创 2022-04-09 20:21:29 · 2447 阅读 · 0 评论 -
四、JAVA NIO (Channel)
NIO 目录文章目录四、JAVA NIO (Channel)1、Channel 概述2、Channel 实现3、FileChannel 介绍和示例4、FileChannel 操作详解4.1、打开 FileChannel4.2、从 FileChannel 读取数据4.3、向 FileChannel 写数据4.4、关闭 FileChannel4.5、FileChannel 的 position 方法4.6、FileChannel 的 size 方法4.7、FileChannel 的 truncate 方法4原创 2022-04-09 20:19:16 · 1719 阅读 · 0 评论 -
三、JAVA NIO概述
NIO 目录文章目录三、JAVA NIO概述1、IO 概述1.2、同步并阻塞 IO (BIO)1.3、同步非阻塞 IO(NIO)1.4、异步非阻塞 IO(AIO)2、NIO 概述2.1、Channel2.2、Buffer2.3、Selector2.4、Channel 、Buffer 、Selector 三者关系2.5 NIO与BIO的对比三、JAVA NIO概述1、IO 概述IO 的操作方式通常分为几种:同步阻塞 BIO、同步非阻塞 NIO、异步非阻塞 AIO。在 JDK1.4 之前,我们建原创 2022-04-09 20:18:12 · 1401 阅读 · 0 评论 -
二、JAVA BIO
NIO 目录文章目录二、JAVA BIO1、 Java BIO基本介绍2、 java BIO工作机制3、传统的BIO编程实例回顾3.1、客户端案例如下3.2、服务端案例如下3.3、输出3.4、小结4、BIO模式下多发和多收消息4.1、客户端代码如下4.2、服务端代码如下4.3、输出5、BIO模式下接收多个客户端5.1、概述5.2、客户端案例代码5.3、服务端案例代码5.4、线程类5.5、输出5.6、小结6、伪异步I/O编程6.1、概述6.2、客户端案例代码6.3、服务端案例代码6.4、线程池处理类6.5原创 2022-04-09 20:16:46 · 2278 阅读 · 0 评论 -
一、Java的IO演进
NIO 目录文章目录一、Java的IO演进1、I/O模型基本说明1.1、BIO1.2、NIO1.3、AIO1.4、BIO、NIO、AIO适用场景分析一、Java的IO演进在java的软件设计开发中,通信架构是不可避免的,我们在进行不同系统或者不同进程之间的数据交互,或者在高并发下的通信场景下都需要用到网络通信相关的技术,对于一些经验丰富的程序员来说,Java早期的网络通 信架构存在一些缺陷,其中最令人恼火的是基于性能低下的同步阻塞式的I/O通信(BIO),随着互联网开发下通 信性能的高要求,Jav原创 2022-04-09 20:15:35 · 674 阅读 · 0 评论 -
76 javaIO_2 _字节流
文章目录字节流字节流的父类(抽象类):字节流抽象类的子类:文件字节流过滤流的子类:字节缓冲流字节流抽象类的子类:对象流序列化与反序列化的注意事项:字节流字节流的父类(抽象类):java.lang.Object ---> java.io.InputStreamjava.lang.Object ---> java.io.OutputStreamInputStream:字节输入流 此抽象类是表示字节输入流的所有类的超类。 部分方法: public int read原创 2020-07-23 10:03:37 · 163 阅读 · 0 评论 -
80 javaIO_6 _Properties集合补充
80 javaIO_6 _Properties集合补充Properties: 属性集合(继承HashTable,线程安全)特点:存储属性名和属性值属性名和属性值都是字符串类型没有泛型和流有关代码1:package com.wlw.io.demo04;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.PrintWriter;import java.util.Map原创 2020-07-23 10:06:35 · 139 阅读 · 0 评论 -
78 javaIO_4 _字符流
文章目录字符流字符流的父类(抽象类):字符流抽象类的子子类:文件字符流字符流抽象类的子类:字符缓冲流字符输出流的子类:打印流字符流抽象类的子类:(桥)转换流首先说一下前面学习的字节流,它是一个一个字节的读取,我们创建的txt文件里面存放的也都是英文。但是当我们用字节流读取中文字符的时候,就会出现乱码,以UTF-8为例,一个中文字符是占了三个字节,而读取时却是一个字节一个字节的读取,将一个中文字符拆分了,所以出现了乱码。下面将学习对字符进行操作的流:字符流。字符流字符流的父类(抽象类):java.l原创 2020-07-23 10:05:08 · 132 阅读 · 0 评论 -
75 javaIO_1 _流的概念与分类
75 javaIO_1 _流的概念与分类什么是流概念:内存与存储设备之间传输数据的通道类比:水借助管道传输,数据借助流传输流的分类按方向【重点】:输入流:将<存储设备>中的内容读入到<内存>中。输出流:将<内存>中的内容写入到<存储设备>中。这是以内存为参照对象按单位:字节流:以字节为单位,可以读写所有数据。字符流:以字符为单位,只能读写文本数据。一个字符可能是一个字节,也可能是多个字节按功能:节点流原创 2020-07-23 10:01:55 · 182 阅读 · 0 评论 -
77 javaIO_3 _编码方式
77 javaIO_3 _编码方式ISO- 8859-1收录除ASCII外,还包括西欧、希腊语、泰语、阿拉伯语、希伯来语对应的文字符号。UTF-8:针对Unicode码表的可变长度字符编码GB2312:简体中文GBK:简体中文、扩充BIG5台湾,繁体中文当编码方式和解码方式不一致时, 会出现乱码...原创 2020-07-23 10:04:16 · 134 阅读 · 0 评论 -
79 javaIO_5 _File类
文章目录File类介绍File类的使用FileFilter(文件过滤器)接口案例1:递归遍历文件夹与案例2:递归删除文件夹File类介绍概念:代表物理盘符中的一个文件或者文件夹。方法:createNewFile()//创建一个新文件mkdir()//创建一个新目录delete()//删除文件或空目录exists()//判断File对象所代表的对象是否存在getAbsolutePath()//获取文件的绝对路径getName ()//取得名字getParent()//获取文件/目录所在原创 2020-07-23 10:05:53 · 144 阅读 · 0 评论 -
84 java网络编程_4 _网络编程
84 java网络编程_4 _网络编程文章目录84 java网络编程_4 _网络编程基于TCP的网络编程案例1:TCP编程实现客户端发送数据给服务端案例2:TCP编程实现客户端上传文件给服务端案例3:TCP编程实现多个客户端发送数据给服务端案例4:使用Socket实现注册登录基于TCP的网络编程Socket编程:Socket (套接字)是网络中的一一个通信节点。分为客户端Socket与服务器ServerSocket。通信要求: IP地址+端口号。(客户端要知道服务器的IP地址+端口号)原创 2020-07-24 10:31:49 · 194 阅读 · 0 评论 -
83 java网络编程_3 _通信协议
83 java网络编程_3 _通信协议TCP协议TCP协议: Transmi ssion Control Protocol 传输控制协议是一种面向连接的、可靠的、基于字节流的传输层通信协议。数据大小无限制。建立连接的过程需要三次握手,断开连接的过程需要四次挥手。UDP协议UDP协议: User Datagram Protocol 用户数据报协议是一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,每个包的大小64KB。(效率高)IP协议为 TCPP协议 ,UDP协原创 2020-07-24 10:30:15 · 165 阅读 · 0 评论 -
82 java网络编程_2 _网络模型
82 java网络编程_2 _网络模型网络模型—OSI参考模型OSI(Open System Interconnection)开放式系统互连第七层:应用层负责文件访问和管理、可靠运输服务、远程操作服务。(HTTP、 FTP. SMTP)第六层:表示层负责定义转换数据格式及加密,允许选择以二进制或ASCII格式传输。第五层:会话层负贵使应用建立和维持会话,使通信在失效时继续恢复通信。(断点续传)第四层:传输层负责是否选择差错恢复协议、数据流重用、错误顺序重排。(TCP、UDP原创 2020-07-24 10:28:02 · 133 阅读 · 0 评论 -
81 java网络编程_1 _计算机网络
81 java网络编程_1 _计算机网络什么是网络由点和线构成,表示诸多对象间的相互联系什么是计算机网络为实现资源共享和信息传递,通过通信线路连接起来的若干主机(Host)按照地理范围网络分为:局域网城域网广域网互联网:(Internet)点与点相连万维网:(WWW - World Wide Web)端与端相连物联网:(IoT - Internet of things)物与物相连网络编程:让计算机与计算机之间建立连接,进行通信。...原创 2020-07-24 10:26:30 · 144 阅读 · 0 评论