我有一个内存区域,其中包含我想通过以太网发送给其他客户端的数据。为了提高吞吐量,目前我正在摆弄sendfile API而不是经典的send / write API。但据我所知,sendfile API需要一个文件描述符来输入,但我所拥有的只是原始内存数据。那么我该怎么做才能使用sendfile API?
答案 0 :(得分:3)
sendfile()
的主要好处是,它允许您在read()
之前避免将文件描述符中的第一个send()
数据带入内存的开销。如果您要发送的数据已在内存中,则不需要sendfile()
。使用奇怪的变通办法将数据移动到文件中(如mmap()
)只会降低性能。
答案 1 :(得分:-1)
如果你运行linux,你可以看看splice