Netty
小石潭记丶
从小丘西行百二十步,隔篁竹,闻水声,如鸣珮环,心乐之。伐竹取道,下见小潭,水尤清冽。全石以为底,近岸,卷石底以出,为坻,为屿,为嵁,为岩。
展开
-
Netty学习10--粘包分包分析,如何避免socket攻击
1、消息如何在管道中流转当前的一个handler如何往下面的一个handler传递一个对象一个管道中会有多个handlerhandler往下传递对象的方法是sendUpstream(event)2、看下粘包和分包是怎么样一个情况hello hello定义一个稳定的结构 length + hello心中会有连个疑惑1、为什么FrameDecoder return的对象就是往下传递的对象 (还是调用了sendUpstream)2、buffer里面数据未被读取完怎么办? ..原创 2020-06-17 21:56:00 · 641 阅读 · 2 评论 -
Netty学习09--自定义数据包协议
give me a coffee give me a teagive me a coffeegive me a tea 粘包现象give me a coffeegive me a tea 分包现象 粘包和分包出现的原因是:没有一个稳定数据结构分割符give me a coffee|give me a tea|give me a coffee|give me a tea|长度 + 数据16give me a coffee13give me a .原创 2020-06-16 21:46:35 · 589 阅读 · 0 评论 -
Netty学习08--自定义序列化协议之自定义序列化协议
Serializerpackage core;import java.nio.charset.Charset;import java.util.ArrayList;import java.util.Collection;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.Map.Entry;import org.jboss.netty.buffer.ChannelB.原创 2020-06-16 21:20:55 · 286 阅读 · 0 评论 -
Netty学习07--Protocol Buff
1.protocol buff是一种协议,是谷歌推出的一种序列化协议2.Java序列化协议也是一种协议3.两者的目的是,将对象序列化成字节数组,或者说是二进制数据下面使用代码来体现两者的区别目录结构protoc.exe 编译工具build.bat 编译脚本protoc ./proto/*.proto --java_out=./srcpauseplayer.proto 更多请参考option java_package = "com.proto";opt..原创 2020-06-14 11:32:28 · 257 阅读 · 0 评论 -
Netty学习06--Netty心跳
netty入门教程话题之心跳1、学习idleStateHandler用来检测会话状态2、心跳其实就是一个普通的请求,特点数据简单,业务也简单心跳对于服务端来说,定时清除闲置会话inactive(netty5) channelclose(netty3)心跳对客户端来说,用来检测会话是否断开,是否重连! 用来检测网络延时!1.netty3的心跳实现。HelloHandlerpackage com.cxb.netty3.heart;import org.jboss.nett原创 2020-06-14 10:14:37 · 205 阅读 · 0 评论 -
Netty学习05--Netty5客户端
目录结构:1.Clientpackage com.cxb.netty5.client;import java.io.BufferedReader;import java.io.InputStreamReader;import io.netty.bootstrap.Bootstrap;import io.netty.channel.Channel;import io.netty.channel.ChannelFuture;import io.netty.channel.Chann原创 2020-06-14 09:46:09 · 261 阅读 · 0 评论 -
Netty学习04--Netty5服务端
目录结构:1.ServerHandlerpackage com.cxb.netty5.server;import io.netty.channel.ChannelHandlerContext;import io.netty.channel.SimpleChannelInboundHandler;/** * 服务端消息处理 */public class ServerHandler extends SimpleChannelInboundHandler<String> {原创 2020-06-14 09:39:27 · 226 阅读 · 0 评论 -
Netty学习03--Netty3客户端
Netty的客户端和服务端的内容差不多,直接上代码了0.01.HiHanderpackage com.cxb.client;import org.jboss.netty.channel.ChannelHandlerContext;import org.jboss.netty.channel.ChannelStateEvent;import org.jboss.netty.channel.ExceptionEvent;import org.jboss.netty.channel.Messa原创 2020-06-13 13:43:44 · 192 阅读 · 0 评论 -
Netty学习02--Netty3服务端
1.HelloHandlerpackage com.cxb.server;import org.jboss.netty.channel.ChannelHandlerContext;import org.jboss.netty.channel.ChannelStateEvent;import org.jboss.netty.channel.ExceptionEvent;import org.jboss.netty.channel.MessageEvent;import org.jboss..原创 2020-06-13 13:22:01 · 274 阅读 · 0 评论 -
Netty学习01--NIO
1.1 简介java.nio 全称 java non-blocking IO,是指jdk1.4 及以上版本里提供的新api(New IO) ,为所有的原始类型(boolean类型除外)提供缓存支持的数据容器,使用它可以提供非阻塞式的高伸缩性网络。1.2 为什么需要NIO在 java 最初的 IO 中,OutputStream 和 InputStream 没有提供异步的的 IO 读写,并且服务器端的 accept() 方法是阻塞的。这意味着在客户端中需要采用一个线程对应一个客户端连接的策略来保证服原创 2020-06-13 12:43:12 · 288 阅读 · 0 评论
分享