本文共 2453 字,大约阅读时间需要 8 分钟。
添加Maven依赖
<dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> <version>4.1.36.Final</version> </dependency>
代码示例:
import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.*;import io.netty.channel.nio.NioEventLoopGroup;import io.netty.channel.socket.SocketChannel;import io.netty.channel.socket.nio.NioServerSocketChannel;import io.netty.handler.codec.string.StringDecoder;import io.netty.handler.codec.string.StringEncoder;public class NetttyServer{ public static void main(String[] args) { EventLoopGroup boss = new NioEventLoopGroup(); EventLoopGroup worker = new NioEventLoopGroup(); ServerBootstrap bootstrap = new ServerBootstrap(); bootstrap.group(boss,worker) .channel(NioServerSocketChannel.class) .childHandler(new ChannelInitializer<SocketChannel>() { @Override protected void initChannel(SocketChannel socketChannel) throws Exception { socketChannel.pipeline() .addLast("encoder",new StringEncoder()) .addLast("decoder",new StringDecoder()) .addLast("hello world hanlder",new HelloWorldHandler()); } }); try { ChannelFuture channelFuture = bootstrap.bind(8080).sync(); channelFuture.channel().closeFuture().sync(); } catch (InterruptedException e){ e.printStackTrace(); }finally { boss.shutdownGracefully(); worker.shutdownGracefully(); } } static class HelloWorldHandler extends ChannelInboundHandlerAdapter { @Override public void channelActive(ChannelHandlerContext ctx) throws Exception { System.out.println("channel Active and write back......"); String resp = "Hello world"; ChannelFuture future = ctx.channel().writeAndFlush(resp); future.sync(); System.out.println("success:"+future.isSuccess()); //super.channelActive(ctx); } public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception { System.out.println("read msg : "+msg); String resp = "Hello world"; ctx.channel().writeAndFlush(resp); } }}
转载地址:http://qume.baihongyu.com/