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);

}

目录
相关文章
|
监控 前端开发 Java
事件驱动的奇迹:深入理解Netty中的EventLoop
事件驱动的奇迹:深入理解Netty中的EventLoop
752 0
|
计算机视觉 Python
成功解决Python导入opencv报错“DLL load failed while importing cv2: 找不到指定的模”
成功解决Python导入opencv报错“DLL load failed while importing cv2: 找不到指定的模”
1186 0
|
Web App开发 iOS开发
mac日历显示国家节假日及补班日期
在Mac日历中添加国家节假日和补班日期,可以通过订阅两个ICS文件实现。提供两个订阅链接:“法定节假日-放假日”和“法定节假日-补班”,可选择通过日历订阅、浏览器或下载ICS文件导入。示例代码展示了VCALENDAR和VEVENT格式,用于定义假期提醒的详细信息。每年11月25日更新节假日信息,作者会尽力保持链接最新,如需更新可私信。
1745 1
|
网络安全
【Sword系列】第七届全国残疾人职业技能大赛样题-网络安全-中国菜刀
Wireshark(前称Ethereal)是一个网络数据包分析软件。网络数据包分析软件的功能是截取网络数据包,并尽可能显示出最为详细的网络数据包数据。
239 0
 【Sword系列】第七届全国残疾人职业技能大赛样题-网络安全-中国菜刀
|
Java
Java面向对象中 final关键字的详解
Java面向对象中 final关键字的详解
208 0
|
人工智能 前端开发 Python
Python 海龟绘图:turtle库的使用
turtle库是turtle绘图体系Python的实现,turtle库是python的标准库之一,属于入门级的图形绘制函数库。turtle库绘制原理:有一只海龟在窗体正中心,在画布上游走,走过的轨迹形成了绘制的图形,海龟由程序控制,可以自由改变颜色、方向宽度等。...
914 0
Python 海龟绘图:turtle库的使用
实现用户登录注册的主页面
实现用户登录注册的主页面
124 0
|
监控 安全 Windows
Windows系统日志分析
Windows系统的日志文件存放在C:/windows/system32/winevt/logs目录下 Windows系统的日志分为三种
737 0
Windows系统日志分析
|
编解码 Linux
启明云端分享:7寸串口屏在油烟机上的标新立异
7寸串口屏方案是基于 SigmaStar SSD202D(ARM Cortex A7 内核)主频高达1.2GHz,分辨率为1024x600 的7寸IPS电容触摸屏幕,开机速度非常快,两秒显示logo,7秒进入桌面;支持openwrt系统(同时也支持LINUX系统),用户可以使用8ms平台适配的lvgl库进行拖拽式gui开发;支持串口屏开发模式;内容显示支持图片、GIF,视频。串口屏上带WIFI、蓝牙模块,CAT.1,支持TF卡、一路网口,一路USB口,一路左右声道扬声器,RTC电路,一路RS232 一路RS485,你还可以选配投屏方案,让用户可快速方便的进行手机投屏应用!
458 0
启明云端分享:7寸串口屏在油烟机上的标新立异
|
搜索推荐
网页的标题标签(Title Tag)要怎么写才是最优化?
通过简单的观察就可以发现: 排在搜索引擎搜索结果前几页的网页或网站中,一般是这个网页或网站的标题标签(Title Tag)中包含着搜索关键词。所以,反过来,要让自己网页或网站排到搜索结果的前列,网页的标题标签(Title Tag)非常重要。
398 0