尽管失败,mina writefuture返回write = true

时间:2013-03-08 11:48:50

标签: apache tcp tcp-ip apache-mina mina

这是代码

                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

1 个答案:

答案 0 :(得分:0)

将消息推送到内核时声明写入成功。 这就是套接字的工作原理,你无法知道何时发送或确认TCP消息

相关问题