【问题标题】:Can we choose a particular interface when using raw sockets?我们可以在使用原始套接字时选择特定的接口吗?
【发布时间】:2014-04-11 03:02:19
【问题描述】:

我正在 linux 中构建一个仅通过特定接口发送数据的应用程序。我可以使用原始套接字来做到这一点,也许使用设置套接字选项功能?

【问题讨论】:

  • 你说的“强制”是什么意思?无缓冲?
  • 如果我们有两个接口(比如说 wifi 和以太网),我需要我的数据包通过其中一个(比如说 wifi)。无论如何。
  • 所以您是说通过 wifi 发送一些数据包而通过以太网发送其他数据包是不可接受的?
  • 说我希望所有数据包都通过以太网链接,所以是的,这正是我要说的

标签: linux raw-sockets


【解决方案1】:

当你绑定一个套接字时,你是通过 IP 来完成的。但希望您的接口有不同的 IP 地址。如果是这样,您可以先调用getifaddrs,然后找到您想要的接口地址。

【讨论】:

    【解决方案2】:

    我们可以使用以下方法将已经打开的套接字绑定到给定的接口。

    1. 在套接字上使用绑定。
    2. 使用 setsockopt。使用选项 SO_BINDTODEVICE。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-18
      • 2011-04-29
      • 1970-01-01
      • 1970-01-01
      • 2019-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多