Netty入门(一)环境搭建及使用 一、项目创建在 Eclipse 中右键新建-项目-Maven-Maven Project-下一步-选择 quickstart下一步-设置如图参数自取点击完成。项目会自动创建 pom.xml 文件打开该文件点击 Dependencies标签-Add..设置如图参数由 Netty 版本决定点击 OK保存文件观察 Maven Dependencies 下netty 的 jar 包已经添加完毕。到此为止项目配置完毕了下面就来添加代码吧。二、实现一个简单的服务端 demo1. 首选我们需要自定义一个类处理服务器接收到的消息1 package com.coder.server; 2 3 import io.netty.buffer.ByteBuf; 4 import io.netty.channel.ChannelHandlerContext; 5 import io.netty.channel.ChannelInboundHandlerAdapter; 6 import io.netty.util.CharsetUtil; 7 import io.netty.util.ReferenceCountUtil; 8 9 /** 10 * 输出接收到的消息 11 * author Coder 12 * 13 */ 14 public class HelloServerHandler extends ChannelInboundHandlerAdapter { 15 /** 16 * 收到数据时调用 17 */ 18 Override 19 public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception { 20 try { 21 ByteBuf in (ByteBuf)msg; 22 System.out.print(in.toString(CharsetUtil.UTF_8)); 23 } finally { 24 // 抛弃收到的数据 25 ReferenceCountUtil.release(msg); 26 } 27 28 // ctx.write(msg); 29 // ctx.flush(); 30 } 31 32 /** 33 * 当Netty由于IO错误或者处理器在处理事件时抛出异常时调用 34 */ 35 Override 36 public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception { 37 // 当出现异常就关闭连接 38 cause.printStackTrace(); 39 ctx.close(); 40 } 41 }该类主要是实现了接收客户端发来的消息并输出到控制台。2. 然后我们就能实现一个简单的服务端程序了Netty 服务器的通信步骤为创建两个NIO线程组一个专门用于接收来自客户端的连接另一个则用于处理已经被接收的连接。创建一个ServerBootstrap对象配置Netty的一系列参数例如接受传出数据的缓存大小等。创建一个用于实际处理数据的类ChannelInitializer进行初始化的准备工作比如设置接受传出数据的字符集、格式以及实际处理数据的接口。绑定端口执行同步阻塞方法等待服务器端启动即可。1 package com.coder.server; 2 3 import io.netty.bootstrap.ServerBootstrap; 4 import io.netty.channel.ChannelFuture; 5 import io.netty.channel.ChannelInitializer; 6 import io.netty.channel.ChannelOption; 7 import io.netty.channel.EventLoopGroup; 8 import io.netty.channel.nio.NioEventLoopGroup; 9 import io.netty.channel.socket.SocketChannel; 10 import io.netty.channel.socket.nio.NioServerSocketChannel; 11 12 public class HelloServer { 13 private int port; 14 15 public HelloServer(int port) { 16 this.port port; 17 } 18 19 public void run() throws Exception { 20 EventLoopGroup bossGroup new NioEventLoopGroup(); // 用来接收进来的连接 21 EventLoopGroup workerGroup new NioEventLoopGroup(); // 用来处理已经被接收的连接 22 System.out.println(准备运行端口 port); 23 24 try { 25 ServerBootstrap b new ServerBootstrap(); 26 b.group(bossGroup, workerGroup) 27 .channel(NioServerSocketChannel.class) // 这里告诉Channel如何接收新的连接 28 .childHandler( new ChannelInitializerSocketChannel() { 29 Override 30 protected void initChannel(SocketChannel ch) throws Exception { 31 // 自定义处理类 32 ch.pipeline().addLast(new HelloServerHandler()); 33 } 34 }) 35 .option(ChannelOption.SO_BACKLOG, 128) 36 .childOption(ChannelOption.SO_KEEPALIVE, true); 37 38 // 绑定端口开始接收进来的连接 39 ChannelFuture f b.bind(port).sync(); 40 41 // 等待服务器socket关闭 42 f.channel().closeFuture().sync(); 43 } catch (Exception e) { 44 workerGroup.shutdownGracefully(); 45 bossGroup.shutdownGracefully(); 46 } 47 } 48 49 public static void main(String[] args) throws Exception { 50 int port 10110; 51 new HelloServer(port).run(); 52 } 53 54 }那么这便是一个可执行的服务端程序了。运行后控制台输出如下三、测试我们可以去自定义客户端程序这里为了方便使用 telnet 充当客户端。需要注意的是Windows 默认是没有开启 telnet 客户端的需要我们手动开启。菜单-控制面板-程序-打开或关闭Windows功能设置如图这样我们就能用 telnet 客户端了。在 cmd 窗口输入命令如下打开窗口如下这时候我们在该窗口输入什么eclipse 控制台也会对应输出相应内容。如下注意telnet 窗口会看不到输入的字符只要输入 ctrlL 就可以看到输入的字符了。

相关新闻

最新新闻

TB6593FNG与PIC18LF46K80的直流电机驱动方案

TB6593FNG与PIC18LF46K80的直流电机驱动方案

1. 项目背景与核心器件选型在工业自动化和精密控制领域,直流电机驱动系统的设计一直是工程师面临的关键挑战。TB6593FNG这款全桥驱动IC与PIC18LF46K80微控制器的组合,为中小功率直流电机控制提供了高性价比的解决方案。这套方案特别适合需要精确调速、快…

2026/7/10 1:48:17
Ubuntu终端分屏神器Terminator安装与高效使用指南

Ubuntu终端分屏神器Terminator安装与高效使用指南

1. 为什么 Terminator 是 Ubuntu 新手绕不开的终端“生产力拐杖”刚装好 Ubuntu 的人,常会陷入一种微妙的尴尬:命令行确实强大,但每次想同时看日志、跑服务、查进程、写脚本,就得在十几个终端窗口间疯狂 AltTab 切换,手…

2026/7/10 1:48:17
影刀RPA JSON数据处理:API返回数据的解析与加工

影刀RPA JSON数据处理:API返回数据的解析与加工

影刀RPA JSON数据处理:API返回数据的解析与加工 作者:林焱 什么情况用 调用API、读取配置文件、解析网页接口返回——现代数据交换几乎全是JSON格式。如果你只会影刀的内置文本处理节点,遇到嵌套JSON基本束手无策。 典型场景: …

2026/7/10 1:48:17
Vivado HLS 2023.2 实战:5步将C++数组加法IP集成至Vivado工程

Vivado HLS 2023.2 实战:5步将C++数组加法IP集成至Vivado工程

Vivado HLS 2023.2实战:5步实现C数组加法IP核的Vivado系统集成在FPGA开发领域,高层次综合(HLS)技术正在彻底改变传统RTL设计流程。本文将带您完成从C算法到可集成IP核的完整实现过程,重点解决HLS模块在实际系统中的集成…

2026/7/10 1:48:17
写作压力小了!盘点2026年备受追捧的的降AI率网站

写作压力小了!盘点2026年备受追捧的的降AI率网站

轻松降低论文AI率在2026年已不再是天方夜谭。以下是2026年最炸裂、实测效果显著的降AI率网站神器,覆盖AI痕迹消除、文本改写润色、降重优化、学术合规检测四大核心场景,帮你稳妥搞定毕业论文。 一、全流程王者:一站式搞定论文全链路 这类工具…

2026/7/10 1:48:17
Grok-4.5 技术实战解析

Grok-4.5 技术实战解析

一、Grok-4.5 基础技术架构与定位 1. 底层基座核心参数 Grok-4.5 基于xAI全新V9基座训练,总参数量1.5万亿,是前代Grok 4.3 V8架构的3倍,依托数万片NVIDIA GB300集群完成训练,是首款原生面向代码工程、多工具智能体专项优化的旗舰…

2026/7/10 1:43:17

月新闻