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恢复数据