上一节说到只需要能够让服务端接收客户端发来的数据就行了。那么现在就开始来动手写服务端代码。
上代码:
/**
* 数据采集服务端
*
* @author 湘王
*/
public class CollectorServer {
private final ServerBootstrap bootstrap;
private final EventLoopGroup workerGroup;
/**
* 配置服务端的NIO线程组
* NioEventLoopGroup是个线程组,它包含了一组NIO线程,专门用于网络事件的处理,实际上它们就是Reactor线程组
*/
public CollectorServer() {
// bossGroup用于服务端接受客户端的连接
EventLoopGroup bossGroup = new NioEventLoopGroup();
// workerGroup则用于负责处理具体工作,实现SocketChannel网络读写
workerGroup = new NioEventLoopGroup();
// 启动NIO服务端的辅助启动类
bootstrap = new ServerBootstrap();
// 定义Channel的初始化操作
ChannelInitializer<Channel> initializer = new ChannelInitializer<Channel>() {
@Override
protected void initChannel(Channel channel) throw