Netty:我有来自通信设备的十六进制值,但是当我向该设备发送一些十六进制值时,它被转换为ASCII值。我认为我卡在我目前使用的错误编码器和解码器之间。
有人可以告诉我如何发送这些十六进制字节而不进行转换 进入任何其他的食物。
这是为十六进制值的数据实现编码器和解码器的正确方法。
我在netty中使用的代码是 -
private class TCPPipelineFactory implements ChannelPipelineFactory {
@SuppressWarnings("deprecation")
@Override
public ChannelPipeline getPipeline() throws Exception {
// Create a default pipeline implementation.
ChannelPipeline pipeline = pipeline();
//pipeline.addLast("readtimeout", new ReadTimeoutHandler(hashedWheelTimer, idleTimeSecsForIncompleteRequests));
// Add the text line codec combination first,
pipeline.addLast("framer", new DelimiterBasedFrameDecoder(8192,
new ChannelBuffer[] {
ChannelBuffers.wrappedBuffer("$<end>".getBytes()) }));
// ChannelBuffers.wrappedBuffer(new byte[] { '#' }) }));
///pipeline.addLast("decoder", new StringDecoder()); to check V123 testing
//pipeline.addLast("encoder", new StringEncoder());
pipeline.addLast("decoder", new ObjectDecoder());
pipeline.addLast("encoder", new ObjectEncoder());
// and then business logic.
pipeline.addLast("handler", new TCPService(TCPFrontChannel.this, commLayerId));
return pipeline;
}
}
}