parent
5736eb5a6a
commit
28b9d3d94a
@ -0,0 +1,46 @@
|
||||
package com.leaper.web.service.test;
|
||||
|
||||
import io.netty.bootstrap.ServerBootstrap;
|
||||
import io.netty.channel.ChannelFuture;
|
||||
import io.netty.channel.ChannelInitializer;
|
||||
import io.netty.channel.ChannelOption;
|
||||
import io.netty.channel.EventLoopGroup;
|
||||
import io.netty.channel.nio.NioEventLoopGroup;
|
||||
import io.netty.channel.socket.SocketChannel;
|
||||
import io.netty.channel.socket.nio.NioServerSocketChannel;
|
||||
|
||||
public class MyService {
|
||||
public static void main(String[] args) throws Exception {
|
||||
//创建两个线程组 boosGroup、workerGroup
|
||||
EventLoopGroup bossGroup = new NioEventLoopGroup();
|
||||
EventLoopGroup workerGroup = new NioEventLoopGroup();
|
||||
try {
|
||||
//创建服务端的启动对象,设置参数
|
||||
ServerBootstrap bootstrap = new ServerBootstrap();
|
||||
//设置两个线程组boosGroup和workerGroup
|
||||
bootstrap.group(bossGroup, workerGroup)
|
||||
//设置服务端通道实现类型
|
||||
.channel(NioServerSocketChannel.class)
|
||||
//设置线程队列得到连接个数
|
||||
.option(ChannelOption.SO_BACKLOG, 128)
|
||||
//设置保持活动连接状态
|
||||
.childOption(ChannelOption.SO_KEEPALIVE, true)
|
||||
//使用匿名内部类的形式初始化通道对象
|
||||
.childHandler(new ChannelInitializer<SocketChannel>() {
|
||||
@Override
|
||||
protected void initChannel(SocketChannel socketChannel) throws Exception {
|
||||
//给pipeline管道设置处理器
|
||||
socketChannel.pipeline().addLast(new MyServerHandler());
|
||||
}
|
||||
});//给workerGroup的EventLoop对应的管道设置处理器
|
||||
System.out.println("java技术爱好者的服务端已经准备就绪...");
|
||||
//绑定端口号,启动服务端
|
||||
ChannelFuture channelFuture = bootstrap.bind(6666).sync();
|
||||
//对关闭通道进行监听
|
||||
channelFuture.channel().closeFuture().sync();
|
||||
} finally {
|
||||
bossGroup.shutdownGracefully();
|
||||
workerGroup.shutdownGracefully();
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue