0

我一直在网上搜索,以了解如何使用 C/C++ 在 linux 中编程以利用两个单独的以太网端口(例如 eth0 和 eth1)

我了解如何使用 socket() 和 inet_pton 但这似乎仅适用于单个以太网端口。

第一个以太网端口自动映射到 192.168.0.100,第二个是 192.168.0.101

4

1 回答 1

3

分两部分回答。

  1. 通常,您不必担心显式使用多个以太网端口。内核会自动处理它。这是它的工作原理。对于传出数据包,内核根据目标 IP 地址通过适当的以太网端口发送数据包。因此,如果网络 10.0.0.0 可以通过 eth0 访问,那么数据包将从那里发送出去。如果网络 11.0.0.0 可以通过 eth1 访问,那么数据包将从那里发出。内核通过分配给接口的网络掩码、IP 地址和默认网关(连同路由表)确定网络可达性。
  2. 对于传入的数据包,如果您绑定到任何地址,那么您正在侦听的端口的所有数据包都会传递给您。您还可以选择绑定到特定的 IP 地址,在这种情况下,只有发往该 IP 地址和端口的数据包才会发送给您。
于 2013-06-07T17:06:29.390 回答