connect()如何在同一子网上的两个网络之间进行选择?

时间:2017-08-27 09:31:31

标签: c routing ip-address subnet

假设我已连接到同一子网上的两个网络(例如以太网+ WiFi),例如192.168.1.0/8。

  1. 如果我尝试connect()到两者中存在的IP地址,会发生什么情况等等。192.168.1.1

  2. 我怎样(以编程方式)控制在这种情况下会发生什么? (即,我如何以编程方式选择哪个 192.168.1.1进行连接?)

    我可以使用任何区分设备的方法 - 无论是MAC地址,还是索引,名称或操作系统提供的任何其他方法。我只希望用户能够指定它。

  3. 我不是在询问任何特定的操作系统,因为我正在尝试编写可以跨平台工作的代码,但如果这是特定于操作系统的,我想知道Windows,Linux和Mac的答案(或许多人允许这样做。)

    注意:

    如果答案不同,具体取决于我们正在讨论的子网(例如,如果私人地址的行为与公共地址不同),那么请同时提及差异。我假设没有任何区别。

1 个答案:

答案 0 :(得分:-1)

您的操作系统将优先考虑每个网络接口。它将使用该优先级来确定它将首先尝试解析该地址的网络。

Google搜索会在不同操作系统中设置优先级时提供帮助。这里有几个让你入门: https://www.howtogeek.com/howto/27994/how-to-change-the-priority-of-wiredwireless-network-cards-in-windows/ https://superuser.com/questions/331720/how-do-i-set-the-priority-of-network-connections-in-ubuntu

如果您希望从代码(C)中确定优先顺序 - 我不确定是否可能