我有一个充当镜像的C ++服务器。什么进入了一个不同的插座。现在,它将套接字读入缓冲区并将其写入另一个套接字。我想提高吞吐量。
我read stuff关于sendfile()
和splice()
,但它似乎仅限于"文件到套接字"传输。也许套接字之间的简单pipe()
可行。你推荐什么?
便携式解决方案将是完美的,但如果它只是Linux,那就没问题了。
答案 0 :(得分:4)
您可以在linux中设置命名管道。多个进程可以从中读取/写入。请查看此链接:http://www.cs.fredonia.edu/zubairi/s2k2/csit431/more_pipes.html。
同样如上所述,使用netcat应该可以做到这一点(http://netcat.sourceforge.net/)。
答案 1 :(得分:0)
我在评论中检查了nc(netcat)
提到的Ralu
命令,当它与管道一起使用时,它在两个套接字之间工作:)
我使用了以下命令:
netcat -l 5556 | netcat localhost 5557
我将数据发送到第一个nc命令设置的端口5556(一个python客户端),并在端口5557上监听服务器(小python代码)。
我可以从端口5557恢复数据