Netty (code-demo)

简介: Netty code

Netty

#服务端

#客户端
EventLoop
EventLoopServer
EventLoopClient

Java

@Slf4j

publicclassEventLoopClient{

publicstaticvoidmain(String[]args)throwsInterruptedException{

// 1.启动类

Channelchannel=newBootstrap()

// 2.添加EventLoop

.group(newNioEventLoopGroup())

// 3.选择客户端channel实现

.channel(NioSocketChannel.class)

// 4.添加处理器

.handler(newChannelInitializer<NioSocketChannel>(){

                   @Override//连接初始化调用

protectedvoidinitChannel(NioSocketChannelch)throwsException{

ch.pipeline().addLast(newStringEncoder());

}

//5.链接到服务器

})

.connect(newInetSocketAddress("localhost",8080))

.sync()

.channel();

System.out.println(channel);

System.out.println("");

}

}

SO_BACKLOG

ByteBuf 源码

Java

// 池化技术

static{

StringallocType=SystemPropertyUtil.get(

"io.netty.allocator.type",PlatformDependent.isAndroid()?"unpooled" : "pooled");

allocType=allocType.toLowerCase(Locale.US).trim();


ByteBufAllocatoralloc;

if("unpooled".equals(allocType)){

alloc=UnpooledByteBufAllocator.DEFAULT;

logger.debug("-Dio.netty.allocator.type: {}",allocType);

}elseif("pooled".equals(allocType)){

alloc=PooledByteBufAllocator.DEFAULT;

logger.debug("-Dio.netty.allocator.type: {}",allocType);

}else{

alloc=PooledByteBufAllocator.DEFAULT;

logger.debug("-Dio.netty.allocator.type: pooled (unknown: {})",allocType);

}


DEFAULT_ALLOCATOR=alloc;

//是否使用堆内存  默认采用直接内存

// We should always prefer direct buffers by default if we can use a Cleaner to release direct buffers.

DIRECT_BUFFER_PREFERRED=CLEANER!=NOOP

&&!SystemPropertyUtil.getBoolean("io.netty.noPreferDirect",false);

if(logger.isDebugEnabled()){

logger.debug("-Dio.netty.noPreferDirect: {}",!DIRECT_BUFFER_PREFERRED);

}

目录
相关文章
|
3月前
|
微服务
成功解决:java.lang.NoSuchMethodError: reactor.netty.http.client.HttpClient.chunkedTransfer(Z)Lreactor/ne
这篇文章讲述了在微服务架构中整合gateway网关时遇到的`java.lang.NoSuchMethodError`错误的解决方法。问题主要是由于`spring-boot-starter-parent`的版本和`spring-cloud-starter-gateway`的版本不匹配所导致。文章提供了具体的版本不一致的错误配置,并给出了匹配的版本配置方案,以及成功测试的截图。
成功解决:java.lang.NoSuchMethodError: reactor.netty.http.client.HttpClient.chunkedTransfer(Z)Lreactor/ne
|
Dubbo 前端开发 Java
Failed to bind NettyServer on ×××,cause: io/netty/bootstrap/ServerBootstrap
Failed to bind NettyServer on ×××,cause: io/netty/bootstrap/ServerBootstrap
Failed to bind NettyServer on ×××,cause: io/netty/bootstrap/ServerBootstrap
|
安全
Netty入门Demo
Netty入门Demo
109 0
Netty入门Demo
Netty(一)之helloworld
Netty(一)之helloworld
74 0
netty之helloworld
netty网络编程的学习
|
编解码 网络协议 Java
搞懂Netty(3)使用MessagePack解决编解码问题
使用Netty主要是为了进行网络通信,而网络通信就要涉及到传输数据,数据是不能直接传递的,需要进行一系列处理。java序列化就是其中一种处理方式,但是由于各种各样的缺点,一般不会用,在这里我们介绍一个比较优秀的编码解码技术MessagePack。 这篇文章是我的《搞懂Netty》系列的第三篇,也是在前两篇文章的基础之上进行讲解的。我们使用的是Springboot整合的Netty。
236 0
搞懂Netty(3)使用MessagePack解决编解码问题
Netty - java.lang.NoSuchMethodError:io.netty.bootstrap.Bootstrap.channel
Netty - java.lang.NoSuchMethodError:io.netty.bootstrap.Bootstrap.channel
198 0
Netty - java.lang.NoSuchMethodError:io.netty.bootstrap.Bootstrap.channel
|
网络协议 前端开发
Netty: WebSocket应用,代码demo
Netty: WebSocket应用,代码demo
Netty: WebSocket应用,代码demo
|
编解码 缓存 网络协议
Netty应用:快速了解http各版本的特性 HttpServer的小demo
Netty应用:快速了解http各版本的特性 HttpServer的小demo
Netty应用:快速了解http各版本的特性 HttpServer的小demo
|
Java 程序员 数据安全/隐私保护
netty系列之:JVM中的Reference count原来netty中也有
netty系列之:JVM中的Reference count原来netty中也有