【发布时间】:2018-05-30 09:05:59
【问题描述】:
有一个 Java TCP-Client 使用 Netty 连接到服务器。
在断开连接的通道中写入会导致异常。哪个问题导致此问题并不重要,但对我来说重要的是哪条消息未发送并导致异常。
如何[通过使用 ChannelPromise 或 ChannelFuture] 找到它?
在这里我只得到'f.isSuccess()==true',但这并不成功!消息未发送!
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);
【问题讨论】:
-
你不能从监听器本身访问你的 buf 对象吗?这在大多数情况下都有效,但不适用于 EJP 在他的回答中所说的情况
标签: java tcp exception-handling netty tcpclient