插座之间的管道

时间:2011-10-08 14:57:10

标签: c++ c sockets copy pipe

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

read stuff关于sendfile()splice(),但它似乎仅限于"文件到套接字"传输。也许套接字之间的简单pipe()可行。你推荐什么?

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

2 个答案:

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