work hard work smart

专注于Java后端开发。 不断总结,举一反三。
随笔 - 1158, 文章 - 0, 评论 - 153, 阅读 - 186万
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

随笔分类 -  S. 并发与Netty

1

摘要:我的以Netty Socket编程的代码为例, 1、EventLoopGroup 进入EventLoopGroup,这是一个特殊的EventExecutorGroup,在事件循环中,在selection选择的时候,可以注册Channel。(Channel可以理解为跟客户端的连接) 2、EventEx 阅读全文

posted @ 2019-08-18 21:26 work hard work smart 阅读(1110) 评论(0) 推荐(0) 编辑

摘要:一、用户空间与内核空间切换(4次切换) 二、操作系统层面的零拷贝 更进一步 阅读全文

posted @ 2019-08-17 23:45 work hard work smart 阅读(290) 评论(0) 推荐(0) 编辑

摘要:2、创建"NioTest13_In.txt文件 3、执行后生成了NioTest13_Out.txt 文件 可以知道使用: Charset charset = Charset.forName("iso-8859-1"); //utf-8 使用iso-8859-1和utf-8,中文显示都是正常的 二、字 阅读全文

posted @ 2019-08-17 16:54 work hard work smart 阅读(236) 评论(0) 推荐(0) 编辑

摘要:1、创建服务端代码 2、创建客户端代码 3、测试 1) 启动服务端 2) 启动两个客户端 3) 输出结果 NioServer输出 第一个NioClient输出。连接建立后,输入hello 第二个NioClient输出。 连接建立后,输入world 阅读全文

posted @ 2019-08-17 16:27 work hard work smart 阅读(174) 评论(0) 推荐(0) 编辑

摘要:1、创建NioNest12类 一个线程监听5个端口的事件 启动NioTest12,监听如下五个端口 使用命令行访问 2、telnet localhost 5000,并发送hello wold 输出如下: 3、telnet localhost 5001,并发送hello wold 输出如下: 阅读全文

posted @ 2019-08-17 14:45 work hard work smart 阅读(203) 评论(0) 推荐(0) 编辑

摘要:上一篇讲到的DirectByteBuffer继承自MappedByteBuffer 一、MappedByteBuffer MappedByteBuffer的定义: A direct byte buffer whose content is a memory-mapped region of a fi 阅读全文

posted @ 2019-08-14 20:40 work hard work smart 阅读(403) 评论(0) 推荐(0) 编辑

摘要:一、直接缓存 这个例子的区别就是 ByteBuffer.allocateDirect(512); 进入allocateDirect方法 进入DirectByteBuffer构造函数 Native方法:unsafe.allocateMemory public native long allocateM 阅读全文

posted @ 2019-08-12 22:39 work hard work smart 阅读(494) 评论(0) 推荐(0) 编辑

摘要:一、ByteBuffer类型化的put与get方法 put和get的类型要一致。如第一个是putInt, 输出的使用第一个要用getInt。 二、Slice Buffer 三、只读Buffer 对只读Buffer进行修改,将抛出异常 阅读全文

posted @ 2019-08-11 22:29 work hard work smart 阅读(284) 评论(0) 推荐(0) 编辑

摘要:关于NIO Buffer中的3个重要状态属性的含义: postion, limit与capacity。 输出结果: 阅读全文

posted @ 2019-08-11 17:10 work hard work smart 阅读(432) 评论(0) 推荐(0) 编辑

摘要:一、IO与NIO的区别 java.io 中最核心的一个概念是流(Stream),面向流的编程。一个流要么是输入流,要么是输出流,不可能同时即是输入流又是输出流。 java.nio中3个核心概念: Selector(选择器), Channel(通道)与Buffer(缓冲区)。在java.nio中,我们 阅读全文

posted @ 2019-08-11 15:15 work hard work smart 阅读(169) 评论(0) 推荐(0) 编辑

摘要:上一篇只有Person的message,如果多了一个message,如Dog,这样就会有问题。 解决方法: 定义多协议 一、定义proto文件 然后用命令生成 D:\workspace\study\basic\netty_demo>protoc --java_out=src/main/java sr 阅读全文

posted @ 2019-08-10 21:03 work hard work smart 阅读(527) 评论(0) 推荐(0) 编辑

摘要:一、创建Personproto.proto 创建Personproto.proto文件 2、重新生成 D:\workspace\study\basic\netty_demo>protoc --java_out=src/main/java src/protobuf/Person.proto 二、创建N 阅读全文

posted @ 2019-08-10 20:17 work hard work smart 阅读(286) 评论(1) 推荐(0) 编辑

摘要:一、protobuf环境搭建 Github 地址: https://github.com/protocolbuffers/protobuf 然后进入下载页 https://github.com/protocolbuffers/protobuf/releases 下载系统对应版本编译器 我这里使用的是 阅读全文

posted @ 2019-08-10 19:36 work hard work smart 阅读(546) 评论(0) 推荐(0) 编辑

摘要:WebSocket长连接 一、创建服务端代码 1、MyServer 类 2、WebSocketChannelInitializer 类 3、TextWebSocketFrameHandle 类 二、编写客户端WebSocket代码 三、测试 1、启动服务端 2、打开页面 http://localho 阅读全文

posted @ 2019-08-04 21:59 work hard work smart 阅读(501) 评论(0) 推荐(0) 编辑

摘要:一、创建服务端 1、MyServer 类 增加日志处理器 2、MyServerInitializer 5秒钟没有读事件 7秒钟没有写事件 10秒钟没有读写事件 3、处理器MyServerHandle 二、客户端代码同上一篇一致 三、测试 启动服务端和客户端 1、读空闲 可以发现,5秒钟没有读到消息, 阅读全文

posted @ 2019-08-04 15:41 work hard work smart 阅读(397) 评论(0) 推荐(0) 编辑

摘要:实现场景: 聊天 服务端,客户端A,客户端B,客户端C。当客户端发送消息给服务端后,服务端在将这条消息广播个所有客户端户端A,客户端B,客户端C。 需求1: 客户端上线后,会通知所有客户端上线。 如客户端A先建立连接,不需要通知。 当客户端B与服务端建立连接,服务端告诉A,客户端B上线。 A和B建立 阅读全文

posted @ 2019-08-03 22:22 work hard work smart 阅读(3451) 评论(0) 推荐(0) 编辑

摘要:工程结构图 一、Socket服务端 1、创建MyServer 类 2、服务端处理器类MyServerHandle 当接收到请求后,向客户端写数据。 3、创建MyServerinitializer类 二、客户端 1、MyClient 类 2、客户端处理器MyClientHandle 客户端channe 阅读全文

posted @ 2019-08-03 21:22 work hard work smart 阅读(488) 评论(0) 推荐(0) 编辑

摘要:一、Netty能做什么 1、Netty可以作为Http服务器,和Tomcat一样,可以处理请求,处理响应。表现形式和SpringMVC,Struct2类似。只不过Netty并没有实现Servlet标准(规范) 如前面两篇的介绍 Netty执行流程分析与重要组件介绍 Netty回调与Channel执行 阅读全文

posted @ 2019-08-03 15:40 work hard work smart 阅读(168) 评论(0) 推荐(0) 编辑

摘要:在上一篇的基础上修改代码 1、TestHttpServerHandle 类 2、增加公共类CommonUtil 3、运行结果 使用postman调用 控制台打印如下图 阅读全文

posted @ 2019-08-03 15:36 work hard work smart 阅读(789) 评论(0) 推荐(0) 编辑

摘要:一、环境搭建 创建工程,引入Netty依赖 二、基于Netty的请求响应Demo 1、TestHttpServerHandle 处理器。读取客户端发送过来的请求,并且向客户端返回hello world响应 2、TestServerInitializer 类 3、TestServer 类 启动main 阅读全文

posted @ 2019-08-03 14:25 work hard work smart 阅读(757) 评论(0) 推荐(0) 编辑

1
点击右上角即可分享
微信分享提示