本文主要是介绍高效数据通信的完美组合:基于Netty和Marshalling的实战编解码技术,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
为什么Netty需要编解码器
网络编程就是意味着:两个服务器要进行数据结构化通信。然而通信的数据就是流。有了编码器和解码器就可以很方便直观实现数据结构化通信
netty默认了编解码器
StringDecoder、StringEncoder 等等
数据流向图
源代码地址在下面
上代码
代码结构
Client
public class Client {public static void main(String[] args) throws InterruptedException {EventLoopGroup workerEvent = new NioEventLoopGroup();Bootstrap bootstrap = new Bootstrap();bootstrap.group(workerEvent).channel(NioSocketChannel.class).option(ChannelOption.SO_BACKLOG,128) // 设置线程队列.handler(new ChannelInitializer<SocketChannel>() {@Overrideprotected void initChannel(SocketChannel socketChannel) throws Exception {socketChannel.pipeline().addLast(MarshallingCodec.buildMarshallingEncoder());socketChannel.pipeline().addLast(MarshallingCodec.buildMarshallingDecoder());socketChannel.pipeline().addLast(new ClientHandler()); // 自定义的server处理器}});ChannelFuture connect = bootstrap.connect("127.0.0.1", 9999).sync();connect.channel().closeFuture().sync();workerEvent.shutdownGracefully
这篇关于高效数据通信的完美组合:基于Netty和Marshalling的实战编解码技术的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!