【问题标题】:Is it possible to connect two pipes/sockets?是否可以连接两个管道/套接字?
【发布时间】:2013-02-10 02:51:46
【问题描述】:

我想知道是否可以连接两个管道或套接字。让我们假设有两个管道/套接字对。第一个有两个文件描述符A和B,第二个有两个文件描述符C和D。是否可以将B连接到C以便能够写入A并从D读取数据?除了在用户空间中读取表单 B 并写入 C 吗?

谢谢。

【问题讨论】:

    标签: c sockets unix pipe file-descriptor


    【解决方案1】:

    如果您只是想从一个套接字读取并写入另一个套接字而不将数据复制到用户空间,请查看 http://linux.die.net/man/2/sendfile 。您需要一个相当新的 Linux。

    【讨论】:

    • 其实我用的是FreeBSD,但是已经实现了。我会读到这个。谢谢。
    • 是的,它允许将数据从一个文件描述符发送到另一个文件描述符,而无需将其复制到用户空间。但是,它不会永久连接两个管道/套接字。因此,我想我会将 B 文件描述符发送到另一个进程,而不是通过 C - D 管道传递数据。非常感谢。
    • 那么你想要的是 splice linux.die.net/man/2/splice 而不是 sendfile。但是我不知道它是否存在于 FreeBSD
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-06
    相关资源
    最近更新 更多