
netty
Vencent Kim
好好的活,记录每一份情感和想法,每一个行为,并思考为什么,不断优化自己
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
2、编解码、序列化、Google Protobuf编解码
Java的序列化 Java提供的序列化机制,涉及到两个对象输入输出流类,ObjectInputStream,ObjectOutputStream。 Java序列化的目的是网络传输和对象持久化。 序列化,在网络传输中,将Java对象编码为字节数组或者ByteBuffer对象 反序列化,将从远程服务读取到的ByteBuffer对象或者字节数组解码为Java对象。 Java序列化的缺点: 1...原创 2019-01-23 22:20:16 · 1085 阅读 · 0 评论 -
Netty入门到精通
系统的学习Netty,以源码实战为主,主要参考《Netty权威指南第2版》学习,学习目的是掌握Netty网络开发。 源码参考,源码基于4.1.31.Final版本。 0、一个基本的Netty客户端和服务端程序 1、解决TCP粘包拆包问题,几种编解码器的应用 2、编解码、序列化、Google Protobuf编解码 3、Netty HTTP协议开发 4、WebSocket协议开发 5、...原创 2019-01-20 11:57:35 · 1304 阅读 · 0 评论 -
0、一个基本的Netty客户端和服务端程序
前言(可跳过) 我觉的学习一个新技术,最开始的开始不是看什么概念,而是直接撸示例代码。在看概念性的内容和实践中找到一种平衡,不要一直连续看概念性的内容,也不要只是埋在代码里。 1、自己debug看看,把代码运行的流程仔细的看看,每一行,每一个陌生的类型和方法签名。 如果示例代码给的好,让你可以运行,然后debug起来,就已经入门了。 2、接着就是看一些其他的特性,对关键的特性或者你感兴趣的...原创 2019-01-20 21:54:24 · 972 阅读 · 0 评论 -
3、Netty HTTP协议开发
关于HTTP的介绍,参见HTTP协议介绍 FileServer应用开发 Netty HTTP服务端开发: public class HttpFileServer { private static final String DEFAULT_URL = "/src/main/java/com/kim/"; private static String ip = "10.200...原创 2019-01-25 13:32:44 · 794 阅读 · 1 评论 -
1、解决TCP粘包拆包问题,几种编解码器的应用
粘包拆包问题 粘包拆包问题是基于流的协议所特有的,因为基于流的协议不知道传输的内容是什么。TCP协议是一个基于流的协议,一个完整的数据包可能会被TCP拆分成多个包发送,也有可能多个小的数据包被封装成一个大包发送。 什么决定了拆包规则?粘包拆包的原因是什么? 粘包:服务端一次接收了多个包,这些包粘合在一起 拆包:服务端接收到某个包的一部分内容 很显然,粘包拆包是对业务处理端...原创 2019-01-21 19:57:56 · 643 阅读 · 0 评论 -
4、WebSocket协议开发
概述: HTTP通信是客户端控制的一请求一应答模式。 不适用低延迟应用。 如果有新数据可用时,立即将数据发送到客户端。需要通过长轮询等方式实现。 而WebSocket将网络套接字引入客户端和服务端,浏览器和服务器可以通过套接字建立持久的连接,双方随时都可以互发数据给对方。 HTTP协议的弊端 (1)半双工协议。数据可以在客户端和服务端两个方向上传输,但是同一时刻,只有一个方向上的...原创 2019-01-29 10:55:08 · 455 阅读 · 0 评论 -
5、私有协议开发
协议栈功能概述 1、异步通信,基于Netty的NIO 2、提供消息的编解码 3、提供基于IP地址的白名单接入认证机制 4、链路的有效性校验机制 5、链路的断连重连机制 通信模型 1、客户端发送握手请求消息,携带节点ID等有效身份认证信息 2、服务端对握手请求消息进行合法性校验,包括节点ID有效性校验、节点重复登录校验和IP合法性校验,校验通过后,返回登录成功的握手应答消息 3...原创 2019-01-29 15:17:49 · 3853 阅读 · 0 评论