我想使用能够发送和接收文件的套接字和C/C++语言实现在Linux上运行的客户端 - 服务器体系结构.是否有任何库使这项任务变得简单?有人可以提供一个例子吗?
sendfile()在内核空间中的两个文件描述符之间复制数据.在某个地方,我看到如果你在Linux中用C编写Web服务器,你应该使用send()和recv()而不是使用write()和read().那么send()也使用内核空间吗?
无论我用什么发送 - sendfile()或send() - 在客户端我都会使用recv()吗?
另一方面,man page说:"send()和write(2)之间的唯一区别是标志的存在.使用零标志参数,send()等同于write(2)."
我有一个我正在做的套接字select(),等待其他进程写入.一旦写入,我读取数据,并将其写入另一个文件描述符.我的问题是,如果有一种方法可以将套接字桥接到文件描述符,那么当数据就绪时,它会自动写入另一个文件描述符?
这样,我可以抛出我正在使用的缓冲区,并省略系统中的一个线程.
sendfile()可用于将数据从"文件"描述符传输到"套接字"描述符,以便从机器A到机器B获取数据.是否可以将接收端的数据从"套接字"描述符获取到文件具有类似的零拷贝语义?我认为sendfile()这里没有帮助,因为sendfile()需要数据源是"页面/缓冲区"缓存.我的理解是否正确?splice()在这种情况下可以帮忙吗?