
Netty
周周Blog
对技术充满敬畏
展开
-
第一课 NIO
传统IO的特点阻塞点 server.accept(); inputStream.read(bytes);单线程情况下只能有一个客户端用线程池可以有多个客户端连接,但是非常消耗性能无法作为长连接服务器可以做短连接(旧版本Tomcat)NIO的关键词ServerSocketChannel ServerSocketSocketChannel SocketSelectorSelect原创 2017-10-29 14:00:00 · 389 阅读 · 0 评论 -
第二课 Netty服务端
netty应用的领域1分布式进程通信 例如: hadoop、dubbo、akka等具有分布式功能的框架,底层RPC通信都是基于netty实现的,这些框架使用的版本通常都还在用netty3.x2、游戏服务器开发 最新的游戏服务器有部分公司可能已经开始采用netty4.x 或 netty5.x代码示例public class Server { public static void main(S原创 2017-10-29 15:50:37 · 365 阅读 · 0 评论 -
第三课 Netty客户端
public class Client { public static void main(String[] args) { ClientBootstrap clientBootstrap = new ClientBootstrap(); ExecutorService boss = Executors.newCachedThreadPool();原创 2017-10-29 16:04:00 · 546 阅读 · 0 评论 -
第四课 如何构建一个多线程NIO系统
NIO提高工作效率的方式注册多个selector注册多个ServerSocketChannel原创 2017-10-30 23:39:28 · 305 阅读 · 0 评论 -
第七课 Netty学习之心跳
idleStateHandler用来检测会话状态心跳其实就是一个普通的请求,特点数据简单,业务也简单心跳对于服务端来说,定时清除闲置会话 channelclose(netty3)心跳对客户端来说,用来检测会话是否断开,是否重连! 用来检测网络延时!心跳检测简单实例public class Server { public static void main(String[] args) {原创 2017-10-31 13:54:21 · 322 阅读 · 0 评论 -
第八课 protocol buffer实战
1.protocol buff是一种协议,是谷歌推出的一种序列化协议2.Java序列化协议也是一种协议3.两者的目的是,将对象序列化成字节数组,或者说是二进制数据java序列化示例public class JAVA2Bytes { public static void main(String[] args) throws Exception { byte[] bytes原创 2017-10-31 15:26:36 · 344 阅读 · 0 评论 -
第九课 自定义序列化协议
public class Test1 { public static void main(String[] args) throws IOException { int id= 101; int age= 21; ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputSt原创 2017-11-01 21:07:55 · 348 阅读 · 0 评论 -
第十课 自定义数据包协议
客户端发送到服务端两条数据 give me a coffee give me a tea服务端收到的数据: - give me a coffeegive me a tea 粘包现象 - give me - a coffeegive me a tea 分包现象粘包和分包出现的原因是:没有一个稳定数据结构解决方法(1) 分割符give me a coffee|give me原创 2017-11-02 13:15:26 · 1984 阅读 · 0 评论 -
第十一课 粘包分包分析,如何避免socket攻击
1、消息如何在管道中流转当前的一个handler如何往下面的一个handler传递一个对象一个管道中会有多个handlerhandler往下传递对象的方法是sendUpstream(event) 服务端bootstrap.setPipelineFactory(new ChannelPipelineFactory() { @Override public原创 2017-11-04 22:07:12 · 1094 阅读 · 0 评论