2017-07-27 46 views
-1

我的Windows PC中有两个网卡,一个用于Internet,另一个用于出站UDP流。两个网卡都有网关,我调整了指标,以便互联网绑定流量走到第一位。我宁愿禁用第二个网卡上的网关,并在创建UDP套接字时指定网关。这可能吗?我可以在套接字上强制目标MAC地址吗?用于IP连接的强制网关

+2

当您创建并绑定到您的套接字时,请不要使用INADDR_ANY,请使用分配给您要使用的NIC的实际IP地址。 –

回答

1

您必须将bind()插座连接到您要使用的NIC的本地IP地址。如果您不知道IP,请使用GetAdaptersInfo()GetAdaptersAddresses()枚举NIC,直到找到所需的NIC,然后您将知道要绑定的当前IP。

+0

抱歉,我在写问题时犯了一个错误。我不想仅指定网卡,而是指定网关。 –

+0

@BrunoMartinez:这不是套接字的工作方式。您不能指定网关,只能使用本地网络接口来发送和接收数据。所以你必须绑定到连接到所需网关的接口。 'GetAdaptersInfo()'和'GetAdaptersAddresses()'都包含网关信息,所以你可以查找它。 –

+0

但是有两个网卡,都带有网关,这是一种痛苦。你必须调整指标。我们使用的特殊NIC(DekTec 2162)允许为每个连接设置网关。 –