网络编程
tiankongyun123
这个作者很懒,什么都没留下…
展开
-
网易云课堂学习-netty零拷贝机制
Netty自己的ByteBuf ByteBuf是为解决ByteBuffer的问题和满足网络应用程序开发人员的日常需求而设计的。 JDK ByteBuffer的缺点: 无法动态扩容。长度是固定的,不能动态扩展和收缩,当数据大于ByteBuffer容量时,会发生索引越界异常。 API使用复杂。读写的时候需要手动调用flip()和wind()方法,使用时需要非常谨慎的使用这些api,否则很容易出错。 ByteBuf做了哪些增强 Api操作便捷性。 动态扩容。 多种ByteBuf实现。 高效的零拷贝机制。原创 2020-06-08 22:56:51 · 159 阅读 · 0 评论 -
网易云课堂学习-netty线程模型
netty简介 netty是一个高性能、高可扩展性的异步事件驱动的网络应用程序框架,它极大地简化了TCP和UDP客户端和服务器开发等网络编程。 netty中的四个重要内容: Reactor线程模型:一种高性能的多线程程序设计思路。 netty中自己定义的channel概念:增强版的通道概念。 channelPipeline职责链设计模式:事件处理机制 内存管理:增强的byteBuf缓冲区 netty整体架构图 Netty线程模型 为了让NIO处理更好的利用多线程特性,netty实现了Reactor线程原创 2020-06-08 13:47:41 · 179 阅读 · 0 评论 -
网易云课堂学习- NIO非阻塞网络编程的三大核心概念
Buffer缓冲区 使用Buffer进行数据写入与获取,需要进行如下四个步骤: 将数据写入缓存 调用buffer.flip(),转换为读取模式 缓冲区读取数据 调用buffer.clear()或buffer.compact()清除缓存。 Buffer工作原理 buffer的三个重要属性 capacity:作为一个内存块,buffer具有固定的大小,也称为“容量”。 position位置:写入模式时代表写数据的位置,读取模式时代表读取数据的位置。 limit限制:写入模式,限制等于buffer的容量。原创 2020-06-04 21:27:13 · 180 阅读 · 0 评论 -
网易云课堂学习-BIO阻塞式编程
服务端代码编写 客户端代码编写 多线程版的服务端代码 简单的C/S程序-服务端实例 HTTP协议-请求数据包解析 “Accept-Language:zh-Hans-CN,zh-Hans;q=0.5” “Upgrade-Insecure-Requests:1” “User-Agent:Chrome/64.03282.140” “Accept-Encoding:gzip,deflate” “Host:127.0.0.1:8080” “Connection:Keep-Alive” Http协议-响应数据原创 2020-06-04 13:46:12 · 214 阅读 · 0 评论 -
网易云课堂学习-TCP/UDP协议
OSI网络七层模型 传输控制协议TCP TCP是Internet的一个重要的传输层协议。TCP面向连接、可靠、有序、字节流传输服务。应用程序在使用TCP之前,必须先建立TCPl连接。 TCP握手机制 用户数据报协议:UDP UDP和TCP的比较 TCP UDP 面向连接 无连接 提供可靠性保证 不可靠 慢 快 占用资源多 占用资源少 Socket编程 ...原创 2020-06-04 12:33:52 · 355 阅读 · 1 评论