Ich erweitere ChannelInboundHandlerAdapter
und möchte die genaue Anzahl der Bytes lesen.Netty genaue Anzahl der Bytes lesen
public class Reader extends ChannelInboundHandlerAdapter{
@Override
public void channelRead(ChannelHandlerContext ctx, Object msg){
ByteBuf b = (ByteBuf) msg;
byte size = b.readByte();
//Now I want to read exactly size bytes from the channel
//and then again read the number of bytes and read the bytes...
}
}
Das Problem ist, es kann vorkommen, dass wir von ByteBuf
weniger als erforderlich Bytes lesen. Wie lese ich mehr aus der Channel
?
Eigentlich ja. Danke vielmals. Aber was ist mit den Unterschieden zwischen "ReplayingDecoder"? Wann benutzt man welchen? –
@ St.Antario bitte schauen Sie sich 'ReplayingDecoder' javadocs an. Es hat eine sehr gute Erklärung mit Beispielen. Kurz gesagt - 'ReplayingDecoder' macht mehr und Sie müssen' in.readableBytes()
ReplayingDecoder kann Ihnen helfen, komplexe Situationen zugrunde liegender Datenströme, z. Daten sind nicht genug. Wenn Ihnen die Leistung nicht allzu wichtig ist, wird Ihr Code-Logik-Komplex zu sehr reduziert. – Kaneg