写入
byte[] bytes = msg.getBytes();<br> ByteBuffer writeBuffer = ByteBuffer.allocate(bytes.length);<br> writeBuffer.put(bytes);<br> writeBuffer.flip();
ByteBuffer
ByteBuffer.allocate
如果开辟的空间比要发送的数据长度下会发生BufferOverflowException
如果服务器端byteBuffer获取的长度不是byteBuffer.remaining<br>如果小于,取出的数据会丢失一部分,大于会抛出异常BufferUnderflowException
有可能无法一次性将数据写完,需要检查缓冲区中是否还有数据需要继续进行网络写<br> if(byteBuffer.hasRemaining()){<br> channel.write(byteBuffer,byteBuffer,this);<br>}