Linux:通过多个以太网端口进行TCP套接字编程

时间:2013-06-07 16:18:05

标签: c sockets ethernet

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

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

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

1 个答案:

答案 0 :(得分:2)

两部分答案。

  1. 通常,您不必担心明确使用多个以太网端口。内核自动处理它。这是它的工作原理。对于传出数据包,内核根据目标IP地址通过相应的以太网端口发送数据包。因此,如果可以通过eth0访问网络10.0.0.0,那么就是从中发送数据包的地方。如果可以通过eth1访问网络11.0.0.0,那就是数据包将从哪里发出。内核通过分配给接口的网络掩码,IP地址和默认网关(与路由表一起)确定网络可达性。
  2. 对于传入的数据包,如果绑定到任何地址,则您正在侦听的端口的所有数据包都将传递给您。您还可以选择绑定到特定的IP地址,在这种情况下,只会将发送到该IP地址和端口的数据包发送给您。