Es ist ein Java TCP-Client mit einem Server unter Verwendung Netty
verbunden. Schreiben in einem getrennten Kanal verursacht eine Ausnahme. Es ist nicht wichtig, welches Problem das verursacht, aber es ist mir wichtig, welche Nachricht nicht gesendet wurde und verursachte die Ausnahme.Wie finde ich heraus, welche Nachricht beim Schreiben von Netty eine Ausnahme verursacht?
Wie findet man es [mit ChannelPromise oder ChannelFuture]?
Hier bekomme ich nur 'f.isSuccess()==true
', aber es ist kein Erfolg! Nachricht wurde nicht gesendet!
ChannelPromise promise = c.newPromise();
promise.addListener(new ChannelFutureListener() {
@Override
public void operationComplete(ChannelFuture f) {
System.err.println("<TCPIn: promise write operationComplete.");
if (!f.isSuccess()) {
System.err.println("<TCPIn[writting]: promise write ERROR:");
f.cause().printStackTrace();
f.channel().close();
}
}
});
channel.writeAndFlush(buf,promise);
Können Sie nicht auf Ihr Buf-Objekt vom Hörer selbst zugreifen? Dies würde in den meisten Fällen funktionieren, aber nicht in den Fällen, die EJP in seiner Antwort – Ferrybig