![](https://img-blog.csdnimg.cn/20201012110754635.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Netty专栏
Netty专栏
飞流2023
村上春树有一句话: “我告诉你我喜欢你 并不是一定要和你在一起 只是希望今后的你 在遭遇人生低谷的时候 不要灰心 至少曾经有人被你的魅力所吸引 曾经是,以后也会是”。
我觉得陈奕迅的《十年》是一种不甘心,是一种歇斯底里宣泄,那种深深刻在骨子里的悲伤,而沙宝亮的《十年》是最后面对这样结局的一种释然,是一种美好的祝愿。那种"在最美的十年遇见你"。
展开
-
NIO入门案例之分析NIO服务端序列图
// 1. 打开ServerSocketChannel,用于监听客户端的连接 ServerSocketChannel open = ServerSocketChannel.open(); // 2. 绑定监听端口,设置连接为非阻塞模式 open.accept().bind(new InetSocketAddress(InetAddr...原创 2018-07-16 17:59:34 · 476 阅读 · 0 评论 -
Netty编解码技术
编码技术基于Java提供的对象输入输出流,可以直接把Java对象作为可存储的字节数组写入文件,也可以传输到网络上去。基于jdk默认的序列化机制可以避免操作底层的字节数组,从而提升开发效率。Java序列化的两个目的【1】网络传输 当进行远程跨进程服务调用时,需要把被传输的Java对象编码为字节数组或者bytebuffer对象。二当远程服务读取到bytebuffer对象或者字...原创 2018-07-26 14:35:15 · 223 阅读 · 0 评论 -
NIO解决粘包问题的代码具体实现以及详细注释
项目结构客户端package com.nio.support.client;import io.netty.bootstrap.Bootstrap;import io.netty.channel.ChannelFuture;import io.netty.channel.ChannelInitializer;import io.netty.channel.ChannelOp...原创 2018-07-20 18:25:14 · 853 阅读 · 0 评论 -
NIO模拟粘问题的代码具体实现以及详细注释
(1)项目结构(2)服务端package com.nio.caib.server;import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.ChannelFuture;import io.netty.channel.ChannelInitializer;import io.netty.channel....原创 2018-07-20 17:45:50 · 316 阅读 · 0 评论 -
NIO入门案例使用netty最新版本框架代码实现及详细注释
使用的Nettyjar包:netty-all-4.1.27.Final.jar项目结构:服务端代码package com.nio.netty.server;import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.ChannelFuture;import io.netty.channel.Channel...原创 2018-07-20 15:19:34 · 1596 阅读 · 0 评论 -
Netty固定长度解码器的使用
项目结构服务端package com.nio.fixed.server;import io.netty.bootstrap.ServerBootstrap;import io.netty.buffer.ByteBuf;import io.netty.buffer.Unpooled;import io.netty.channel.ChannelFuture;import i...原创 2018-07-24 17:01:19 · 907 阅读 · 0 评论 -
Netty分隔符解码器的使用
项目结构服务端package com.nio.echo.server;import io.netty.bootstrap.ServerBootstrap;import io.netty.buffer.ByteBuf;import io.netty.buffer.Unpooled;import io.netty.channel.ChannelFuture;import io...原创 2018-07-24 16:26:50 · 1619 阅读 · 0 评论 -
AIO入门案例客户端的代码具体实现以及详细注释
package com.nio.aio.client;import java.io.IOException;public class AIOClient { public static void main(String[] args)throws IOException { // 设置要监听的端口 int port = 8788; ...原创 2018-07-18 18:20:59 · 402 阅读 · 0 评论 -
AIO入门案例服务端的代码具体实现以及详细注释
package com.nio.aio.server;import java.io.IOException;public class AIOServer { public static void main(String[] args)throws IOException { // 设置要监听的端口 int port = 8788; ...原创 2018-07-18 18:19:58 · 279 阅读 · 0 评论 -
NIO入门案例客户端的代码具体实现以及详细注释
package com.nio.real;import java.io.IOException;public class TimeClient { public static void main(String[] args)throws IOException { // 设置要监听的端口 int port = 8785; if (a...原创 2018-07-18 18:17:16 · 411 阅读 · 0 评论 -
StringDecoder和LineBasedFrameDecoder的原理分析
LineBasedFrameDecoder的工作原理是它依次遍历ByteBuf中的可读字节,判断看是否有“\n”或者“\r\n”,如果有就以此位置为结束位置,从可读索引到结束位置区间的字节就组成了一行。它是以换行符为结束标志的解码器,支持携带结束符或者不携带结束符两种解码方式,同时支持配置单行的最大长度。如果连续读取到最大长度后仍然没有发现换行符,就会抛出异常,同时忽略掉之前读取到的异常码流。...原创 2018-07-24 10:32:37 · 1438 阅读 · 0 评论 -
TCP粘包和拆包的讲解
TCP粘包和拆包TCP是个流协议,就是没有界限的一串数据。TCP底层并不了解上层业务数据的具体含义,它会根据TCP缓冲区的实际情况进行包的划分,所以在业务上认为一个完整的包可能会被TCP拆分为多个包进行发送,也有可能把多个小的包封装成一个大的数据包发送,这就是TCP粘包和拆包。由于服务端一次读取到的字节数是不确定的分为以下四种情况:(1)服务端分两次读取到了两个独立的数据包,分别是...原创 2018-07-24 10:09:06 · 1726 阅读 · 0 评论 -
NIO入门案例服务端的代码具体实现以及详细注释
package com.nio.real;import java.io.IOException;public class TimeServer { public static void main(String[] args)throws IOException { // 设置要监听的端口 int port = 8785; if (a...原创 2018-07-17 18:02:49 · 316 阅读 · 0 评论 -
NIO类库的简介
缓冲区BufferBuffer是一个对象,该类是个抽象类,主要包含一些要写入或者要读出的数据。在INO类库中加入Buffer对象,体现了新库与原来的I/O的区别。在NIO库中,所有的数据都是用缓冲区处理的。在读取数据时,它是直接读取到缓冲区中的,在写入数据时,写入到缓冲区中。任何时候该访问NIO中的数据,都是通过缓冲区进行操作。缓冲区实质上是一个数组,通常是一个byteBuffer。一...原创 2018-07-16 18:06:25 · 1138 阅读 · 0 评论 -
Netty权威指南第七章MessagePack编解码省略代码补全
项目结构编码器package com.nio.msgpack;import io.netty.buffer.ByteBuf;import io.netty.channel.ChannelHandlerContext;import io.netty.handler.codec.MessageToByteEncoder;import org.msgpack.MessagePac...原创 2018-08-01 14:36:09 · 574 阅读 · 0 评论