
netty
文章平均质量分 78
cuit_618
不积跬步无以至千里
展开
-
springboot+netty实现socket编程
springboot+netty实现socket编程Java socket网络编程一直没有怎么接触到,虽然以前也自学过netty,但未在实际项目中使用过,始终感觉肤浅。最近看到lcnV4.0.2版本时,才算明白如何在实际springboot项目中如何使用netty实现socket编程。(注意:lcn5.+,代码比较晦涩难懂,如果只是想学习如何在springboot环境下使用netty实现socket编程,建议阅读lcn4.+)服务端和客户端交互的数据报文约定但lcnV4.x是直接使用的Json,但还是原创 2021-11-06 23:08:36 · 5670 阅读 · 1 评论 -
netty学习07-netty在LCN分布式事务框架中的应用
1. LCN简介LCN是一个分布式事务框架,底层的网络框架使用的就是netty。LCN分为客户端(TC)和服务器端(TM),本文不会对LCN做过多的介绍,只是从底层的网络框架来说明netty在实际项目中的应用。TM作为一个服务端,需要单独启动,而LCN的TM是一个springboot项目,环境搭建和启动过程和一般的springboot项目类似。LCN的TM和TC在springboot启动过...原创 2019-10-29 11:34:18 · 452 阅读 · 0 评论 -
netty学习06-编解码介绍
1. 编码和解码器在netty中编码器和解码器,其本质也是ChannelHandler的一种实现。1.1半包粘包问题产生原因:TCP/IP协议是面向流的协议。当客户端向服务器端发送数据时,会把数据划分为一个一个的包进行发送,服务器端收到数据时,也是一个一个的包,那么服务器端怎么知道一个请求包含几个包呢?即服务器端怎么把一个一个包组装成一个完整请求呢?1.2粘包/拆包解决思路...原创 2019-10-24 11:45:15 · 251 阅读 · 0 评论 -
netty学习05-handler介绍
1. Netty中Handler从应用程序开发人员的角度来看,Netty的主要组件是ChannelHandler,而ChannelHandler包括入站和出站两种类型。数据入站,指的是数据从底层的Java NIO channel到Netty的Channel。 数据出站,指的是通过Netty的Channel来操作底层的 Java NIO chanel。1.1 inbound入站(...原创 2019-10-23 10:40:00 · 1038 阅读 · 0 评论 -
netty学习04-源码解析之服务端启动和接收读写过程
1. 服务端示例代码public class MyServer2 { public static void main(String[] args) { //负责接收客户端的连接请求 EventLoopGroup boosGroup = new NioEventLoopGroup(1); //负责接收客户端读写请求 Ev...原创 2019-10-21 14:42:19 · 221 阅读 · 0 评论 -
NIO零拷贝分析
场景介绍:在客户端通过读取本地文件并发送给服务器端,记录从发送开始到发送完成的执行时间,采用BIO方式和NIO零拷贝发送进行说明。先上代码,BIO方式代码如下:public class OldServer { public static void main(String[] args) throws Exception{ ServerSocket server...原创 2019-08-27 19:47:07 · 217 阅读 · 0 评论 -
netty学习02-javaIO进化过程和模式
1. BIO 同步阻塞IO1.1 BIO服务器端示例代码public class JavaBioServer { public static void main(String[] args) throws Exception { ServerSocket serverSocket = new ServerSocket(7777); System.o...原创 2019-10-17 11:28:56 · 177 阅读 · 0 评论 -
netty学习01-基本代码结构
1.加载netty依赖<dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> <version>4.1.39.Final</version></dependency>2.服...原创 2019-08-29 13:46:31 · 292 阅读 · 0 评论 -
netty学习03-源码解析之事件循环组
public static void main(String[] args) { //负责接收客户端的连接请求 EventLoopGroup boosGroup=new NioEventLoopGroup(1); //负责接收客户端读写请求 EventLoopGroup workerGroup=new NioEventLoopGro...原创 2019-08-30 10:41:34 · 939 阅读 · 0 评论