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