linlin_1998 2019-10-30 15:00 采纳率: 0%
浏览 160

NIO零拷贝在windowns系统上传输的数据有大小限制吗

  1. 使用nio做了一个服务端接口数据。
  2. 客服端使用channel的transferTo方法传送一个文件到服务端,结果发现服务端接收的数据永远只有8M.
  • 写回答

1条回答 默认 最新

  • 剑杰砍死Linux 2025-12-11 06:57
    关注

    有,这问题啊,说白了就是 Windows 自家的“锅”。Java 里用  transferTo  的时候,在 Windows 底下其实走的是系统层的  SendFile  这类调用,而 Windows 内核给这种操作的单次传输大小设了个上限,差不多就是你们遇到的 8MB 左右。不是 NIO 设计有问题,是平台差异。换成 Linux 或者别的系统,这个限制要么没有,要么大得多,就不会卡得这么明显。

    评论

报告相同问题?