netty
iRich_全栈
这个作者很懒,什么都没留下…
展开
-
netty基础教程-1、Helloworld(基于Http通信协议)
在学习netty之前,先来看看netty是什么;是怎么工作的gradle依赖plugins { id 'java'}group 'congjun.wang'version '1.0'sourceCompatibility = 1.8targetCompatibility = 1.8repositories { mavenCentral()}depen...原创 2019-02-03 10:49:33 · 12376 阅读 · 0 评论 -
netty基础教程-2、Netty工作原理架构图
server端工作原理如下图:server端启动时绑定本地某个端口,将自己NioServerSocketChannel注册到某个boss NioEventLoop的selector上。server端包含1个boss NioEventLoopGroup和1个worker NioEventLoopGroup,NioEventLoopGroup相当于1个事件循环组,这个组里包含多个事件循环NioE...原创 2019-02-03 10:52:31 · 13826 阅读 · 1 评论 -
netty基础教程-3、helloworld(cs模式)
功能实现服务端接受客户端数据响应结果给客户端客户端发送请求给服务端接受服务端的响应服务端实现启动类:Server.javapublic class Server { public static void main(String[] args) throws Exception{ //创建两个组,分别用来接受客户端情求和处理客户端消息的 ...原创 2019-02-03 10:54:28 · 12426 阅读 · 0 评论 -
netty基础教程-4、helloworld(优化版)
功能实现服务端接受客户端数据响应结果给客户端客户端发送请求给服务端接受服务端的响应服务端实现启动类:Server.javapublic class Server { public static void main(String[] args) throws Exception{ //创建两个组,分别用来接受客户端情求和处理客户端消息的 ...原创 2019-02-03 11:00:06 · 12257 阅读 · 0 评论 -
netty基础教程-5、拆包黏包LengthFieldBasedFrameDecoder和LengthFieldPrepender解析
一、拆包黏包问题数据在网络中都是以流的形式进行传输的,即像水流一样。没有所谓的开始位置和结束位置。这时就需要我们自己定义协议将数据进行分段处理,否则会出现拆包黏包的问题(数据读到一半解析失败);好在netty为我们提供了一些列的方法;TCP以流的方式进行数据传输,上层应用协议为了对消息进行区分,往往采用如下4种方式。消息长度固定:累计读取到固定长度为LENGTH之后就认为读取到了一个完...原创 2019-02-11 11:52:46 · 13699 阅读 · 0 评论