sendfile()
can be used to transmit data from a \"file\" descriptor to a \"socket\" descriptor in order to get data from machine A to machine B. Is it possible t
You're correct about the limitation of sendfile
for this. And yes, splice
can help, but it's not trivial: splice
requires that at least one of the source or target file descriptors be a pipe. So you can't directly splice
from a socket to a plain file descriptor.
Conceptually, what you can do to make it work is:
splice
alsoRepeat the last steps until all the data is read.
Zero-Copy in Linux with sendfile() and splice() has an implementation of this technique.