摘要: netty提供了一种特殊的Channel 实现——EmbeddedChannel用来测试ChannelHandler; 例如:想测试自己编写服务端解码器是否能正确解码; 想在程序中测试需要在客户端给服务端发送消息,不方便调试; 使用EmbeddedChannel可以做到本地调试解码器; 1.Embe 阅读全文
posted @ 2020-05-29 17:02 L丶银甲闪闪 阅读(591) 评论(0) 推荐(0) 编辑
摘要: 引导类的作用是对程序进行配置; 也就是将ChannelPipeline、 ChannelHandler 、 EventLoop等组件组织起来,成为一个可实际运行的应用程序 netty的引导类两种,都继承自 AbstractBootstrap: Bootstrap ->用于引导客户端和无连接协议 Se 阅读全文
posted @ 2020-05-29 16:59 L丶银甲闪闪 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 1. SSL/TLS 加密 加密协议 SSL 和 TSL用来给传输的数据加密以实现数据安全; 为了支持 SSL/TLS,Java 提供了 javax.net.ssl API 的类SslContext 和 SslEngine; Netty提供了一个名为SslHandler的ChannelHandler 阅读全文
posted @ 2020-05-29 16:54 L丶银甲闪闪 阅读(838) 评论(0) 推荐(0) 编辑
摘要: 对于网络编程需要实现某种 codec (编解码器); 网络数据通常以二进制进行传输; codec的作用就是将原始字节数据与目标程序数据格式进行互转; 解码器Decoder用来处理入站数据;例如将二进数据转java对象; 编码器 Encoder负责处理出站数据,比如将出栈数据转换成适合传输的字节流; 阅读全文
posted @ 2020-05-29 16:49 L丶银甲闪闪 阅读(432) 评论(0) 推荐(1) 编辑
摘要: ChannelHandler是消息处理器; ChannelHandler接口中定义了很多方法,每一个方法对应一个事件; 当Channel和ChannelHandler生命周期中状态改变时会触发各种事件,也就导致了事件对应的方法会被调用; 1.Channel的生命周期 netty用Channel表示一 阅读全文
posted @ 2020-05-29 16:46 L丶银甲闪闪 阅读(570) 评论(0) 推荐(0) 编辑
摘要: 网络数据以字节byte传输; 通常会使用缓冲区来作为字节的容器;例如:byte数组、nio使用的ByteBuffer; netty也提供了类似的数据缓冲api; Netty 的数据处理 API : abstract class ByteBuf interface ByteBufHolder Byte 阅读全文
posted @ 2020-05-29 16:41 L丶银甲闪闪 阅读(533) 评论(0) 推荐(0) 编辑
摘要: 1.传输方式 netty中的主要传输方式: 1).OIO 也就是阻塞式io; 1】netty实现oio服务端 只是接受客户端连接并发送“hello world”字符串消息到客户端,发送完了就断开连接 public class NettyOioServer { //netty阻塞io服务 public 阅读全文
posted @ 2020-05-29 16:37 L丶银甲闪闪 阅读(164) 评论(0) 推荐(0) 编辑
摘要: netty主要包含下列组件: Bootstrap 和 ServerBootstrap ->引导类,用来配置netty组件; Channel ->socket EventLoop -> 处理io事件的线程 ChannelPipeline ->保存处理过程需要用到的ChannelHandler和Chan 阅读全文
posted @ 2020-05-29 16:34 L丶银甲闪闪 阅读(142) 评论(0) 推荐(0) 编辑
摘要: netty是一个网络编程框架; 如果java应用程序需要与其它程序或设备通信时,需要用到网络编程; 比如:通过java程序远程控制设备开关、接收并处理传感器传递的数据等; 1.利用阻塞流的socket 服务端: public class BioSocket_server { public stati 阅读全文
posted @ 2020-05-29 16:30 L丶银甲闪闪 阅读(106) 评论(0) 推荐(0) 编辑