我有一个内存区域,其中包含我想通过以太网发送给其他客户端的数据。为了增加吞吐量,目前我正在摆弄 sendfile API 而不是经典的发送/写入 API。但据我了解,sendfile API 需要输入文件描述符,但我所拥有的只是原始内存数据。那么我应该怎么做才能使用 sendfile API?
最佳答案
sendfile()
的主要好处是它可以让您避免必须首先 read()
数据从文件描述符到内存中的开销,然后才能发送()
它。如果要发送的数据已经在内存中,则不需要 sendfile()
。使用奇怪的解决方法将数据移动到文件中(例如 mmap()
ing 它)只会降低性能。
关于c++ - 发送没有文件描述符的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25635161/