Netty是一个nio的框架。但是对于新学习的同学来说,netty有点不太好入手。这里写个小demo,实现一个比较简单的netty的服务端和客户端。

  Netty 大概有几个模块:

  服务端:

  1.服务端的接入类。用于创建和接收相应的传入信息。2.handler 用于对请求进行实际处理。

  客户端:

  1.客户端接入,用于创建接入连接。 2.handler 用于接收服务端的返回内容。

  代码如下:  

 1 import io.netty.bootstrap.ServerBootstrap;
 2 import io.netty.channel.ChannelFuture;
 3 import io.netty.channel.ChannelInitializer;
 4 import io.netty.channel.EventLoopGroup;
 5 import io.netty.channel.nio.NioEventLoopGroup;
 6 import io.netty.channel.socket.SocketChannel;
 7 import io.netty.channel.socket.nio.NioServerSocketChannel;
 8 
 9 public class Server {
10 
11     public static void main(String[] args) throws Exception {
12         //1 第一个线程组 是用于接收Client端连接的
13         EventLoopGroup bossGroup = new NioEventLoopGroup();
14         //2 第二个线程组 是用于实际的业务处理操作的
15         EventLoopGroup workerGroup = new NioEventLoopGroup();
16         
17         //3 创建一个辅助类Bootstrap,就是对我们的Server进行一系列的配置
18 
19         ServerBootstrap b = new ServerBootstrap();
20         //把俩个工作线程组加入进来
21         b.group(bossGroup, workerGroup)
22         //我要指定使用NioServerSocketChannel这种类型的通道
23          .channel(NioServerSocketChannel.class)
24         //一定要使用 childHandler 去绑定具体的 事件处理器
25          .childHandler(new ChannelInitializer<SocketChannel>() {
26             @Override
27             protected void initChannel(SocketChannel sc) throws Exception {
28                 sc.pipeline().addLast(new ServerHandler());
29             }
30         });
31 
32         //绑定指定的端口 进行监听
33         ChannelFuture f = b.bind(8765).sync(); 
34         
35         //Thread.sleep(1000000);
36         f.channel().closeFuture().sync();
37         
38         bossGroup.shutdownGracefully();
39         workerGroup.shutdownGracefully();
40          
41         
42         
43     }
44     
45 }
服务端代码 service类

相关文章:

猜你喜欢
  • 2021-08-14
  • 2021-11-01
  • 2020-05-11
  • 2021-05-20
相关资源
相似解决方案