随笔分类 -  项目1—网络编程

摘要:1.AIO模型分析 AsyncChannelGroup指的是,可以被多个异同通道所共享的资源群组。其中,最主要的资源有线程池。 不指定的情况下,系统会使用一个默认的AsyncChannelGroup。 在AIO编程模型中,高效率和方便是因为操作系统做了很多的事。 在请求处理的过程中,并不是在主线程中 阅读全文
posted @ 2021-03-07 17:09 不学无墅_NKer 阅读(180) 评论(0) 推荐(0)
摘要:1.从操作系统的内核角度对比三大模型 1.1 阻塞式I/O 对应BIO 1.2 非阻塞式I/O 对应NIO的非阻塞模式 注意:上图并不包括NIO的Selector监听模式,仅仅对应NIO中把服务端ServerSocketChannel和客户端SocketChannel配置的非阻塞模式。 1.2.1 阅读全文
posted @ 2021-03-05 17:16 不学无墅_NKer 阅读(186) 评论(0) 推荐(0)
摘要:1. NIO模型分析 对于服务端,创建Selector,需要监听ServerSocketChannel的ACCEPT事件,监听注册的每一个SocketChannel的READ事件。 Selector监听ACCEPT事件,如果有客户发出连接请求,服务端要为该客户的通道在服务器Selector注册REA 阅读全文
posted @ 2021-03-05 08:58 不学无墅_NKer 阅读(129) 评论(0) 推荐(0)
摘要:1.NIO概述 Channel与Stream的不同: Stream是具有方向性的,有输入流 or 输出流;Channel是双向的,既可以读又可以写。 Stream的读和写都是阻塞式的;但是Channel有两种模式,既可以阻塞式读写,又可以非阻塞式读写。 非阻塞的意思是,例如想从某个Channel中读 阅读全文
posted @ 2021-03-03 16:58 不学无墅_NKer 阅读(136) 评论(0) 推荐(0)
摘要:1.BIO编程模型 BIO模型:对每一个建立连接的客户端,服务端都要创建一个线程单独处理和这个客户的通信,典型的一请求一应答。 1.1 优化——伪异步IO编程模型 思路:使用线程池来管理服务器端所有可用线程,即通过一个线程池来处理多个客户端的请求接入。 好处:通过线程池可以灵活的调配线程资源,设置线 阅读全文
posted @ 2021-03-03 11:18 不学无墅_NKer 阅读(85) 评论(0) 推荐(0)
摘要:1.Socket与ServerSocket 如果收到客户端的请求后,accept函数会返回一个Socket对象。该对象是服务器用于和客户端通信的端点。 accept函数是阻塞式的,直到收到客户端的请求。 2.简单演示Socket与ServerSocket的基本使用 目标:客户端连接到服务器后,发送消 阅读全文
posted @ 2021-02-27 20:45 不学无墅_NKer 阅读(435) 评论(0) 推荐(0)
摘要:1. java.io下的字符流和字节流 网络编程的本质是进程间的通信,通信的基础是IO模型。 1.1字符流 1.2字节流 2.Socket Socket是网络通信的端点 2.1 通过Socket发送数据 2.2 通过Socket读取数据 3. 同步异步与阻塞非阻塞的概念 同步异步指的是通信机制的两种 阅读全文
posted @ 2021-02-27 12:16 不学无墅_NKer 阅读(132) 评论(0) 推荐(0)
摘要:1. 网络编程演进史 Java1.4以前,BIO(阻塞IO) Java1.4,NIO(非阻塞IO) Java1.7,AIO(异步IO) 2. 网络层的解析与协议 2.1域名DNS的解析过程 域名解析:从右向左将域名 解析为 IP地址。例如www.google.com,其实是省略了.root根域名,即 阅读全文
posted @ 2021-02-26 22:21 不学无墅_NKer 阅读(72) 评论(0) 推荐(0)