这是代码
WriteFuture writeFuture = session.write(message);
writeFuture.addListener(this);
writeFuture.awaitUninterruptibly();
sentMessage = writeFuture.isWritten();
在发送消息之前,我将服务器与网络断开连接(拉线),以便无法发送消息。但是,无论如何,sentMessage将返回true。在wiresharks输出上你可以看到三个TCP重传(显然没有acks)。再过几条消息(与第一条消息不同的消息),它将意识到链接已关闭并返回false。
我认为这是写的(如果数据包已经成功发送)但是显然事实并非如此。我如何知道数据包是否已到达?我试过mina版本2.0.7和2.0.4
答案 0 :(得分:0)
将消息推送到内核时声明写入成功。 这就是套接字的工作原理,你无法知道何时发送或确认TCP消息