在我正在开发的应用程序中,我在Linux上使用splice
进行套接字到套接字数据传输。
splice
或等效解决方案?splice
¹+ sendfile
¹在Windows上模拟套接字到套接字数据{{1}?¹在Windows上都存在不同名称,我不记得了。
更新
您可以在Linux上看到memmap
与用户空间缓冲区的性能改进。
splice
,DF
,DR
,F
,MF
是我在不同隧道模式下的应用,MR
是NGINX网络服务器NX
使用Linux系统调用-p+t
splice
使用带有用户空间缓冲区的便携式实现+p-t
使用带有用户空间缓冲区和多个OS线程的可移植实现答案 0 :(得分:1)
OpenBSD有sosplice
和somove
:http://www.openbsd.org/cgi-bin/man.cgi?query=sosplice
答案 1 :(得分:0)
TransmitFile在winsock中以一种方式从一个文件句柄流到一个套接字,但是我不确定这是否会帮助你从文件 - >磁盘流式传输。您可以使用memory mapped file句柄来使用它。
我听说过去有几个人说“内核模式”是加速回声和简单服务器操作的方法,但我从来没有这样做过。
内核模式winsock上的一些链接:
http://blogs.msdn.com/b/wndp/archive/2006/02/24/introduction-to-winsock-kernel-wsk.aspx
http://msdn.microsoft.com/en-us/library/windows/hardware/ff571084(v=vs.85).aspx