2014-01-14 89 views
2

我有一臺帶有幾張網卡的機器。我的過程非常耗費網絡,因爲它通過網絡將許多文件複製到另一臺計算機上的共享位置(例如「\ ...」)。如何強制File.Move/File.Copy使用特定的網絡接口卡(NIC)C#?

我想爲該進程設置一個專用NIC,但使用的NIC的C#IO API File.Copy \ File.Move掩碼。

如何在C#中,甚至使用一些C的C#項目下++調整來完成?

回答

3

File.Move()File.Copy()實際上並不擁有網絡的任何knowlege。它完全依靠操作系統來處理所有事情。因此,如果您將文件移動/複製到恰好是網絡安裝的路徑,那麼就這樣吧。但Move()Copy()並不在乎。

話雖這麼說,你可以設置通過Sockets一種協議,它可以綁定到一個NIC。

假設您有一個NicA位於「123.2.2.3」,而NicB位於「156.2.3.4」位置。然後,您可以創建一個套接字並將Bind()添加到與您關注的NIC相匹配的IPAddress

+2

+1,但你的第二個例子IP讓我有點內心死亡。 – admdrew

+1

@admdrew呃...恥辱... – Andrew

+0

只是要說清楚:只需將某個套接字對象綁定到所需的NIC的IP,然後IO操作將使用該IP? – user3195654

1

這是一個完整bodge,但你可以使用不使用,私人範圍內的第二個IP地址綁定到兩臺機器,和File.Copy

例如,假設您的正常LAN地址是192.168.0.1,但NIC1上的192.168.0.254

在 「源」 機器,結合10.0.0.1到NIC2。 在「目的地」機器上,將10.0.0.2綁定到您要使用的NIC上,或者將其作爲輔助地址添加到現有NIC上(如果這是您的偏好)。

然後你可以File.Copy\\10.0.0.2\share。源計算機上的操作系統應該知道NIC2是「最低成本路線」10.0.0.2

相關問題