netty基本使用

客户端:

1、创建一个发送请求工作线程组

EventLoopGroup workerGroup = new NioEventLoopGroup();

2、创建客户端启动器

Bootstrap b = new Bootstrap();

3、启动器绑定线程组

 b.group(workerGroup)

4、启动器绑定NIO通道

 b.channel(NioSocketChannel.class)

5、构建请求发送处理器

b.handler(new ChannelInitializer<SocketChannel>() )

其中:通过pipeline来控制处理器的顺序

  ch.pipeline().addLast(new LineBasedFrameDecoder(1024));
  ch.pipeline().addLast(new StringDecoder());

执行发送前的数据处理工作:这是一个处理链,类似于责任链模式

6、启动客户端连接发送数据

b.connect(host, port).sync()

7、关闭异步连接

f.channel().closeFuture().sync();

服务端:

1、创建一个接收请求工作线程组

EventLoopGroup serverGroup = new NioEventLoopGroup(1)

2、创建一个处理请求工作线程组

EventLoopGroup workerGroup = new NioEventLoopGroup(10)

3、创建服务端启动器

ServerBootstrap b = new ServerBootstrap()

4、启动器绑定线程组

 b.group(serverGroup , workerGroup)

5、启动器绑定NIO通道

b.channel(NioServerSocketChannel.class) 

6、构建请求接收处理器

b.handler(new ChannelInitializer<SocketChannel>() )

其中:通过pipeline来控制处理器的顺序

  ch.pipeline().addLast(new LineBasedFrameDecoder(1024));
  ch.pipeline().addLast(new StringDecoder());

执行接收前的数据处理工作:这是一个处理链,类似于责任链模式

7、异步监听端口接收数据

 ChannelFuture f = b.bind(port).sync();

8、关闭异步连接

f.channel().closeFuture().sync();

注意:netty是如何处理网络中的粘包和拆包,数据转换等?答案是 ChannelHandler。

才疏学浅,就总结到这里。

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值