我有一臺帶有幾張網卡的機器。我的過程非常耗費網絡,因爲它通過網絡將許多文件複製到另一臺計算機上的共享位置(例如「\ ...」)。如何強制File.Move/File.Copy使用特定的網絡接口卡(NIC)C#?
我想爲該進程設置一個專用NIC,但使用的NIC的C#IO API File.Copy
\ File.Move
掩碼。
如何在C#中,甚至使用一些C的C#項目下++調整來完成?
我有一臺帶有幾張網卡的機器。我的過程非常耗費網絡,因爲它通過網絡將許多文件複製到另一臺計算機上的共享位置(例如「\ ...」)。如何強制File.Move/File.Copy使用特定的網絡接口卡(NIC)C#?
我想爲該進程設置一個專用NIC,但使用的NIC的C#IO API File.Copy
\ File.Move
掩碼。
如何在C#中,甚至使用一些C的C#項目下++調整來完成?
File.Move()
和File.Copy()
實際上並不擁有網絡的任何knowlege。它完全依靠操作系統來處理所有事情。因此,如果您將文件移動/複製到恰好是網絡安裝的路徑,那麼就這樣吧。但Move()
和Copy()
並不在乎。
話雖這麼說,你可以設置通過Sockets
一種協議,它可以綁定到一個NIC。
假設您有一個NicA
位於「123.2.2.3」,而NicB
位於「156.2.3.4」位置。然後,您可以創建一個套接字並將Bind()
添加到與您關注的NIC相匹配的IPAddress
。
這是一個完整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
。
+1,但你的第二個例子IP讓我有點內心死亡。 – admdrew
@admdrew呃...恥辱... – Andrew
只是要說清楚:只需將某個套接字對象綁定到所需的NIC的IP,然後IO操作將使用該IP? – user3195654