摘要:
Handler如何使用在前面的例子中已经有了示范,那么同样是扩展自ChannelHandler的Encoder和Decoder,与Handler混合后又是如何使用的?本文将通过一个实际的小例子来展示它们的用法。 该例子模拟一个Server和Client,两者之间通过http协议进行通讯,在Serve 阅读全文
摘要:
Handler在netty中,无疑占据着非常重要的地位。Handler与Servlet中的filter很像,通过Handler可以完成通讯报文的解码编码、拦截指定的报文、统一对日志错误进行处理、统一对请求进行计数、控制Handler执行与否。一句话,没有它做不到的只有你想不到的。 Netty中的所有 阅读全文
摘要:
1、什么是粘包/拆包 一般所谓的TCP粘包是在一次接收数据不能完全地体现一个完整的消息数据。TCP通讯为何存在粘包呢?主要原因是TCP是以流的方式来处理数据,再加上网络上MTU的往往小于在应用处理的消息数据,所以就会引发一次接收的数据无法满足消息的需要,导致粘包的存在。处理粘包的唯一方法就是制定应用 阅读全文
摘要:
Netty中,通讯的双方建立连接后,会把数据按照ByteBuf的方式进行传输,例如http协议中,就是通过HttpRequestDecoder对ByteBuf数据流进行处理,转换成http的对象。基于这个思路,我自定义一种通讯协议:Server和客户端直接传输java对象。 实现的原理是通过Enco 阅读全文
摘要:
通讯协议,指的是把Netty通讯管道中的二进制流转换为对象、把对象转换成二进制流的过程。转换过程追根究底还是ChannelInboundHandler、ChannelOutboundHandler的实现类在进行处理。ChannelInboundHandler负责把二进制流转换为对象,ChannelO 阅读全文
摘要:
LengthFieldBasedFrameDecoder 常用的处理大数据分包传输问题的解决类,先对构造方法LengthFieldBasedFrameDecoder中的参数做以下解释说明 maxFrameLength:解码的帧的最大长度 lengthFieldOffset :长度属性的起始位(偏移位 阅读全文
摘要:
YY 语音登录协议分析 摘要:本文档详细记录了YY语音登录按钮事件所触发的一系列调用和相应库文件函数的调用,并对函数和类结构进行重命名,以简便记忆该名称,更详细的内容请参考反汇编文件.登录按钮事件: 用户在登录界面,填写用户名和密码,单击登录按钮则触发本事件yymainframe.dll1. 0x6 阅读全文
摘要:
color 0A && echo offrem protoc程序名set "PROTOC_EXE=protoc.exe"rem .proto文件名::set "PROTOCOL_FILE_NAME=t2.proto"%PROTOC_EXE% --versionset "WORK_DIR=%cd%"r 阅读全文
摘要:
首先来说一下本文中例子所要实现的功能: 基于ProtoBuf序列化对象 使用Socket实现时时通信 数据包的编码和解码 下面来看具体的步骤: 一、Unity中使用ProtoBuf 导入DLL到Unity中,创建网络传输的模型类: using System; using ProtoBuf; //添加 阅读全文
摘要:
[转]Protobuf3 语法指南 目录 [−] 定义一个消息类型 指定字段类型 分配标识号 指定字段规则 添加更多消息类型 添加注释 保留标识符(Reserved) 从.proto文件生成了什么? 标量数值类型 默认值 枚举 使用其他消息类型 导入定义 使用proto2消息类型 嵌套类型 更新一个 阅读全文