随笔分类 - 【netty】
摘要:数据传输载体 ByteBuf 介绍 在前面一小节,我们已经了解到 Netty 里面数据读写是以 ByteBuf 为单位进行交互的,这一小节,我们就来详细剖析一下 ByteBuf ByteBuf结构 首先,我们先来了解一下 ByteBuf 的结构 以上就是一个 ByteBuf 的结构图,从上面这幅图可
阅读全文
摘要:实战:客户端与服务端双向通信 在前面两个小节,我们已经学习了服务端启动与客户端启动的流程,熟悉了这两个过程之后,就可以建立服务端与客户端之间的通信了,本小节,我们用一个非常简单的 Demo 来了解一下服务端和客户端是如何来通信的。 .handler(new ChannelInitializer<So
阅读全文
摘要:客户端启动流程上一小节,我们已经学习了 Netty 服务端启动的流程,这一小节,我们来学习一下 Netty 客户端的启动流程。源码 客户端启动 Demo对于客户端的启动来说,和服务端的启动类似,依然需要线程模型、IO 模型,以及 IO 业务处理逻辑三大参数,下面,我们来看一下客户端启动的标准流程 N
阅读全文
摘要:服务端启动流程 这一小节,我们来学习一下如何使用 Netty 来启动一个服务端应用程序,以下是服务端启动的一个非常精简的 Demo: NettyServer.java public class NettyServer { public static void main(String[] args)
阅读全文
摘要:源码地址:源码 MavenMaven 是一个基于对象模型来管理项目构建的项目管理工具,通过配置文件 pom.xml 来配置 jar 包,相对于传统拷贝 jar 包的方式,管理依赖更为方便,如果你的本地没有安装过 Maven,下面的指导将带你一起安装 1.下载首先,到下载页面下载 Maven,由于 M
阅读全文
摘要:Netty 是什么?在开始了解 Netty 是什么之前,我们先来回顾一下,如果我们需要实现一个客户端与服务端通信的程序,使用传统的 IO 编程,应该如何来实现?源码 IO编程我们简化下场景:客户端每隔两秒发送一个带有时间戳的 "hello world" 给服务端,服务端收到之后打印。 为了方便演示,
阅读全文
摘要:微信的聊天又分为单聊和群聊,下面分别来介绍一下。源码 单聊流程 单聊指的是两个用户之间相互聊天。下面我们来看一下,用户单聊的基本流程 如上图,A 要和 B 聊天,首先 A 和 B 需要与服务器建立连接,然后进行一次登录流程,服务端保存用户标识和 TCP 连接的映射关系A 发消息给 B,首先需要将带有
阅读全文
摘要:支持可热拔插的channelHandler ,心跳与空闲检测,源码 1、启动服务端(运行nettyServer的main方法) 2、启动客户端(运行nettyclient的main方法),并输入登录用户名登录,如下图: 3、单聊 发送方: 接受方: 4、群聊 (1)、发起群聊,创建群 client:
阅读全文
摘要:为什么选择netty Netty 是业界最流行的 NIO 框架之一,它的健壮性、功能、性能、可定制性和可扩展性在同 类框架中都是首屈一指的,它已经得到成百上千的商用项目验证,例如 Hadoop 的 RPC 框 架 Avro 使用 Netty 作为通信框架。很多其它业界主流的 RPC 和分布式服务框架
阅读全文
摘要:用户空间以及内核空间概念 我们知道现在操作系统都是采用虚拟存储器,那么对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32次方)。操心系统的核心是内核,独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层硬件设备的所有权限。为了保证用户进程不能直接操作内核,保证内核的安全,操心
阅读全文