2017-09-06 72 views
1
連接

我的筆記本電腦連接到LAN和WIFI,有一個單獨的網絡連接, 我的SQL服務器是在同一個網絡我的LAN和我有平的在SQL Server首先運行查詢之前的功能,現在的問題是每次我跑我的Dekstop應用其選擇WiFi連接來ping服務器,而不是局域網時間。 我可以讓我的網絡適配器的列表,並確定哪些是LAN或WIFI,但我怎麼告訴我的應用程序使用哪一個?C#.NET:如何選擇哪個網絡適配器到我的應用程序在運行時

NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces(); 
foreach (NetworkInterface adapter in nics) 
{ 
    if (adapter.OperationalStatus == OperationalStatus.Up) 
    { 
     if (adapter.NetworkInterfaceType == NetworkInterfaceType.Wireless80211) 
     { 
      MessageBox.Show("No Connection to SQL Server"); 
     } 
     else 
     {   
      GetPING(); //PING SERVER FUNCTION IF TRUE 
      MessageBox.Show("Connected to SQL, Run App Now."); 
     } 
    } 
} 
+1

我不知道我理解的問題。您通常不需要在客戶端應用程序中做任何事情來告訴它使用哪個適配器。即如果服務器名稱解析爲LAN地址,則網絡堆棧將使用LAN適配器。 –

+0

很抱歉的混亂忘了加我的功能將ping服務器。編輯我的問題。 –

+1

路由由IP地址和掩碼決定。 Windows會查看所有活動連接,並採用具有最多限制掩碼的路由。所以在255.255.0.0之前需要255.255.255.0。使用cmd.exe> IPCONFIG/all查看適配器和掩碼的IP地址。 – jdweng

回答

0

你可以得到在通過接入NetworkInterface.GetIPProperties().UnicastAddresses性質的網絡接口上設置的所有IP地址。之後,你需要做什麼取決於你是如何實現PING功能的。

  1. 如果您只是執行PING.exe,則有-S選項可以讓您將您想用於ping的源地址拼接起來。
  2. 如果使用Socket發出ICMP Echo消息,您需要調用Socket.Bind方法來指定本地端點。
相關問題