实践发现,当使用socketChannel.close()之后,对于close之前已经写入缓冲区但由于网络原因没有发送成功的数据,在server端网络恢复后,还是能接收到该数据;
求问是否有什么办法能在调用Close之前,将此socketChannel的输出缓冲区中的数据清理掉?
从该博主处得到的:http://blog.csdn.net/Ctrl_qun/article/details/52454380
这些I/O缓冲区特性可整理如下:
I/O缓冲区在每个TCP套接字中单独存在;
I/O缓冲区在创建套接字时自动生成;
即使关闭套接字也会继续传送输出缓冲区中遗留的数据;
关闭套接字将丢失输入缓冲区中的数据。