本文主要是介绍28.建议和纠错,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
创建ByteBuf建议
特别说明:
之前创建的ByteBuffer都是:
ByteBuf buffer = ByteBufAllocator.DEFAULT.buffer(10); //默认获取的是直接内存
这样创建只是自己写一些测试练习使用。
真正项目开发中,还是建议在handler中的创建:在服务端发送数据给客户端的时候。
@Overridepublic void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {ByteBuf buffer = ctx.alloc().buffer(20);buffer.writeBytes("hello client".getBytes());ctx.writeAndFlush(buffer);}
纠正
前面的博文中写到,在netty的nio多路复用IO模型时,读写才不会相互阻塞,才可以实现高效的双向通信。
其实,java socket 是全双工的,在任意时刻,线路上存在A到B和B到A的双向信号传输。即使是阻塞IO,读和写是可以同时进行的,只要分别采用读线程和写线程即可,读不会阻塞写,写也不会阻塞读。
这篇关于28.建议和纠错的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!