java socket与Netty服务器通信
本人初学java,第一次学写技术博客:
ByteBuffer与ByteBuf
C/C++中在进行网络通信的过程中直接面对的是字节流或是字符流。java中网络通信的话面对的是缓冲区buffer。
ByteBuffer是来自于java.nio
ByteBuf是来自于io.netty.buffer 两者相互转换自然是可以的。ByteBuf的nioBuffer()方法可以得到ByteBuf对应的ByteBuffer.
使用ByteBuffer与Netty通信
在ByteBuffer 开始写入需要传输数据的大小
应用的背景是通过Socket 将一个自定义类传输到服务器,在服务器正确解析出这个类。
在传输的ByteBuffer的开始四字节存储要传输byte数组的长度,再将要传输的byte数组放入ByteBuffer中。
在接收端的相应的要在pipeline中加入两个处理函数
LengthFieldBasedFrameDecoder() LengthFieldPrepender()
客户端
if(socket == null)
socket = new Sock