
netty
文章平均质量分 69
乐之者v
快乐编程,一生编程。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Netty实践 -- Netty处理粘包拆包
行拆包器,发送端发送数据包的时候,每个数据包之间以换行符作为分隔,接收端通过LineBasedFrameDecoder将粘过的ByteBuf拆分成一个个完整的应用层数据包。最后一种拆包器是最通用的一种拆包器,只要你的自定义协议中包含长度域字段,均可以使用这个拆包器来实现应用层拆包。比如以下客户端发送了多个 “粘包拆包测试.” ,结果有好几条数据粘在了一起,有些又被拆开了。固定长度拆包器,Netty 在消息长度固定的场景下,对固定长度的流数据进行解码。粘包:TCP 可能把多个小的包粘成一个大的数据包。原创 2023-10-23 23:18:31 · 157 阅读 · 0 评论 -
Netty源码实践-- echo
详情见:https://blog.youkuaiyun.com/sinat_32502451/article/details/133934402。学习netty,可以从netty源码的 netty-example 模块开始。ChannelHandler,用于处理 channel,实现业务逻辑。netty-example 有一个例子 echo,非常适合入门学习。以上的这个示例,用到了 Netty常用的类,在以下示例中,客户端会向服务端发送消息。服务端收到客户端的消息后,会进行响应。先启动服务端,然后再启动客户端。原创 2023-10-19 21:07:34 · 285 阅读 · 0 评论 -
Netty常用类与接口
Channel 可以处理 所有的网络 I/O 操作(包括 bind()、connect()、read()和 write())。ServerBootstrap :服务器的引导类,可以绑定服务器和端口,配置 Channel、ChannelHandler等。Channel 可以处理 所有的网络 I/O 操作, 而 Channel 的结果,通过 ChannelFuture 接收。Bootstrap:客户端的引导类。ChannelHandler,用于处理 Channel,实现对接收的数据的处理,实现业务逻辑。原创 2023-10-19 20:37:10 · 194 阅读 · 0 评论 -
《Netty实战》读书笔记
(1)Future、回调和 ChannelHandler。Netty的异步编程模型是建立在Future和回调的概念之上的,而将事件派发到ChannelHandler。(2)选择器(Selector)、事件和 EventLoop。Netty 通过触发事件将 Selector 从应用程序中抽象出来,消除了所有本来将需要手动编写的派发代码。原创 2023-09-25 00:16:41 · 161 阅读 · 0 评论 -
Netty源码编译
编译 netty-example 会出现很多乱七八糟的问题,根本原因是因为缺少 io.netty.util.collection 包。想了解Netty源码,最好先从 netty-example 开始,多跑几个 example,了解Netty的实际应用。最后重新运行 netty-example的 main方法 ,编译通过,成功运行。1.先 install Dev-Tools 模块。2.接着 install Common 模块。接着 install Common 模块。原创 2023-10-14 13:03:16 · 1206 阅读 · 0 评论 -
Netty Reactor模式
实际上每个你可以把咖啡馆这个例子中每个顾客理解为服务器接收的请求,前台的服务员理解为一个单线程的while循环,这个while循环有一个很形象的名字,event loop,这个event loop要做的事情非常简单,那就是接收用户请求,然后让handler,或者回调函数去处理,这里的handler或者回调函数就好比大厨张三和李四去,handler或者回调函数可以和event loop运行在同一个线程中,也可以和event loop各自运行在各自的线程中。” —《码农荒岛求生》原创 2023-10-16 23:56:57 · 5 阅读 · 0 评论 -
Netty NIO基础
BIO:同步并阻塞,服务实现模式为一个连接对应一个线程,即客户端发送一个连接,服务端要有一个线程来处理。如果连接多了,线程数量不够,就只能等待,即会发生阻塞。NIO:同步非阻塞,服务实现模式是一个线程可以处理多个连接,即客户端发送的连接都会注册到多路复用器上,然后进行轮询连接,有I/O请求就处理。AIO:异步非阻塞,引入了异步通道,采用的是proactor模式,特点是:有效的请求才启动线程,先由操作系统完成在通知服务端。一个Channel一般对应一个Buffer,Buffer可以是双向的。原创 2023-10-16 23:52:23 · 60 阅读 · 0 评论