3
  1. 给定两个网络套接字,在不以任何方式接触内容的情况下,将数据从一个连接到另一个的最有效方法是什么?

  2. 有没有一种方法(系统调用 API)来管理内核空间中的套接字到套接字数据管道,类似于spliceLinux 上提供的方法?这就是我splice目前在 Haskell 中使用的方式:使用 GNU/Linux 系统调用 `splice` 在 Haskell 中进行 Socket 到 Socket 数据传输的零拷贝

4

1 回答 1

1

Windows 上的零拷贝 API 称为 TransmitFile。它读取文件句柄并写入套接字 - 它通常用于从 Web 服务器提供静态文件。我认为你可以提供一个套接字句柄作为文件句柄,因为你通常可以,即使在 Windows 上也是如此。如果是这样,那应该可以解决您的问题。我不确定,因为我没有尝试过,而且文档在这一点上没有明确说明。虽然它是拷贝 API,所以如果它不起作用,呃,它当然应该。

于 2012-04-26T20:11:18.760 回答