3
netty 상단에 구현 된 일부 프레임 워크를 사용하고 있습니다. 아래 두 가지 옵션을 사용하여 클라이언트에서 서버로 메시지를 보내고 있습니다. 나는이 두 조각이 서버 측에서의 동작이 다른 소켓과 동일한 바이트를 써야한다고 생각한다. 어떻게 다른가요?ByteBuffer 대 ChannelBuffer
옵션 1 : 괜찮
ChannelBuffer buf = ChannelBuffers.buffer(1);
buf.writeByte(0x1c);
e.getChannel().write(buf);
옵션 2 : 당신이 채널에의 ByteBuffer를 쓰기 전에 당신이이를하고있다
buf.flip();
전화를해야
ByteBuffer buf = ByteBuffer.allocate(1);
buf.put(0x1c);
e.getChannel().write(ChannelBuffers.wrappedBuffer(buf));
예, 이제 동일한 결과가 생성됩니다. 이 문제의 본질에 대해 더 자세히 읽을 수있는 곳은 어디입니까? 감사! –
@NikolayKuznetsov [docs] (http://docs.oracle.com/javase/6/docs/api/java/nio/Buffer.html#flip())에서 간단한 설명을 볼 수 있습니다. – sebastian