sockets之间的管道

我有一个充当镜像的C ++服务器。 什么进入了一个不同的sockets。 现在,它将套接字读入缓冲区并将其写入另一个套接字。 我想提高吞吐量。

我已经读过有关sendfile()splice() ,但它似乎仅限于“文件到套接字”传输。 也许套接字之间的简单pipe()可以工作。 您有什么推荐的吗?

便携式解决方案将是完美的,但如果它只是Linux,那就没问题了。

您可以在linux中设置命名管道。 多个进程可以从中读取/写入。 看看这个链接: http : //www.cs.fredonia.edu/zubairi/s2k2/csit431/more_pipes.html 。

同样如上所述使用netcat应该做的伎俩(http://netcat.sourceforge.net/)。

我检查了Ralu在他的评论中提到的nc(netcat)命令,当它与管道一起使用时它在两个套接字之间起作用:)

我使用了以下命令:

netcat -l 5556 | netcat localhost 5557
netcat -l 5556 | netcat localhost 5557 

我将数据发送到第一个nc命令设置的端口5556(python客户端),并使端口5557上的服务器(小python代码)监听。

我可以从端口5557恢复数据