2017-07-27 43 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)允許爲每個連接設置網關。 –