package com.walker.tcp;
|
|
import io.netty.buffer.Unpooled;
|
import io.netty.channel.ChannelInitializer;
|
import io.netty.channel.ChannelPipeline;
|
import io.netty.channel.socket.SocketChannel;
|
import io.netty.handler.codec.DelimiterBasedFrameDecoder;
|
import io.netty.handler.codec.string.StringDecoder;
|
import io.netty.handler.codec.string.StringEncoder;
|
import io.netty.handler.logging.LogLevel;
|
import io.netty.handler.logging.LoggingHandler;
|
|
public class HelloClientInitializer extends ChannelInitializer<SocketChannel> {
|
|
@Override
|
protected void initChannel(SocketChannel ch) throws Exception {
|
ChannelPipeline pipeline = ch.pipeline();
|
|
pipeline.addLast("logging",new LoggingHandler(LogLevel.DEBUG));
|
|
/*
|
* 这个地方的 必须和服务端对应上。否则无法正常解码和编码
|
*
|
* 解码和编码 我将会在下一张为大家详细的讲解。再次暂时不做详细的描述
|
*
|
* */
|
// pipeline.addLast("framer", new DelimiterBasedFrameDecoder(8192, Delimiters.lineDelimiter()));
|
pipeline.addLast("framer", new DelimiterBasedFrameDecoder(8192, Unpooled.wrappedBuffer(new byte[] { '#' })));
|
pipeline.addLast("decoder", new StringDecoder());
|
pipeline.addLast("encoder", new StringEncoder());
|
|
// 客户端的逻辑
|
pipeline.addLast("handler", new HelloClientHandler());
|
}
|
}
|