【发布时间】:2011-05-06 03:24:47
【问题描述】:
这里的问题是我可以看到数据正在写入套接字,但并不总是被发送。
这是一个代码片段
ByteBuffer writeBuffer = ByteBuffer.allocate(8192);
writeBuffer.clear();
writeBuffer.put("heartbeat".getBytes());
writeBuffer.flip();
LOG.debug("is connected: " + socketChannel.isConnected());
int bytesWritten = 0;
if (key.isWritable()) {
while (writeBuffer.hasRemaining()) {
bytesWritten += socketChannel.write(writeBuffer);
}
}
我使用 TCPMon 来查看实际数据是否被写入套接字 - 它确实如此。
但是使用 WireShark(另一种网络监控工具)我看不到通过 NIC 的数据包。
任何帮助将不胜感激
【问题讨论】: