想问一下netty使用protobuf传递信息一直报这个错是怎么回事呀?内存溢出?怎么处理呀?
DEBUG io.netty.buffer.PoolThreadCache - Freed 1 thread-local buffer(s) from thread: nioEventLoopGroup-2-1
这个是客户端代码
public class NettyClient {
public static void main(String[] args) throws InterruptedException {
//客户端需要一个事件循环组
EventLoopGroup group = new NioEventLoopGroup();
try {
//创建客户端启动对象
//注意:客户端使用的不是 ServerBootStrap 而是 Bootstrap
Bootstrap bootstrap = new Bootstrap();
//设置相关参数
bootstrap.group(group) //设置线程组
.channel(NioSocketChannel.class) //设置客户端通道的实现类(使用反射)
.handler(new ChannelInitializer<SocketChannel>() {
@Override
protected void initChannel(SocketChannel ch) throws Exception {
ch.pipeline().addLast("encoder", new ProtobufEncoder());
ch.pipeline().addLast(new NettyClientHandler()); //加入自己的处理器
}
});
System.out.println("客户端 OK...");
//启动客户端去连接服务器端
//关于 channelFuture 涉及到 netty 的异步模型
//ChannelFuture channelFuture = bootstrap.connect("127.0.0.1", 6668).sync();
for (int i = 0; i < 1; i++) {
try {
ChannelFuture channelFuture = bootstrap.connect("127.0.0.1", 6668);
channelFuture.get();
} catch (Exception e) {
e.printStackTrace();
}
}
//给关闭通道进行监听
//channelFuture.channel().closeFuture().sync();
} finally {
group.shutdownGracefully();
}
}
}