【问题标题】:Automatically forward one socket to another自动将一个套接字转发到另一个
【发布时间】:2023-03-12 02:32:01
【问题描述】:

我有两个使用socket() 创建的文件描述符,它们都连接到不同的主机。我希望在第一个套接字上收到的任何内容都立即在第二个套接字上发送,反之亦然。

我知道可以通过 select()、send() 和 recv() 的组合手动实现这一点,但是有没有更直接的方法来告诉内核简单地将输出从一个管道传输到另一个?

【问题讨论】:

  • 您可以使用 iptables 规则来实现。这将在内核空间中执行。我的 iptables 生锈了,所以我无法填写详细信息..
  • 在最近的几行中,splice() 几乎正是您所寻找的。​​span>

标签: c sockets unix network-programming posix


【解决方案1】:

没有。您可以使用像netcat 这样的工具来为您执行此操作(因此您不必编写代码),但即使netcat 包含一个复制数据的循环。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-21
    • 2022-11-29
    • 1970-01-01
    • 1970-01-01
    • 2020-01-16
    • 1970-01-01
    相关资源
    最近更新 更多