2014-04-07 17 views
7

muszę sprawdzić zdalnego IP i port jest dostępny lub not.If ITS jest dostępna będzie przejść do następnego form.If niedostępny powinna dojść do wstępnego state.I spróbował wykorzystać tenJak sprawdzić zdalny adres IP i port jest dostępny?

while (true) 
{ 
    IPGlobalProperties ipProperties = IPGlobalProperties.GetIPGlobalProperties(); 
    IPEndPoint[] ipEndPoints = ipProperties.GetActiveTcpListeners(); 
    ------- 
    ------- 
    ------- 
} 

jestem pokazując przykład kodowania.it sprawdzał lokalny adres IP i port i przechodził do następnej formy.it sprawdzi lokalny port i adres IP jest dostępny.Jeśli port i adres IP nie są dostępne to dojdzie do początkowego etapu i działał poprawnie. Muszę sprawdzić w zdalnym porcie i IP.

Odpowiedz

23

Użyj klasy Ping sieci .NET, aby sprawdzić, czy system jest podłączony i czy jest podłączony, a następnie użyj numeru PortScanner, aby sprawdzić, czy port jest otwarty. sprawdź te linki w celu dalszego czytania i odkrywania.

http://msdn.microsoft.com/en-us/library/system.net.networkinformation.ping%28v=vs.110%29.aspx

http://social.msdn.microsoft.com/Forums/vstudio/en-US/8e4410bd-307f-4264-9575-cd9882653945/help-with-portscanner-in-c?forum=csharpgeneral

LUB

bardzo czysty metody tej składni

public static bool PingHost(string _HostURI, int _PortNumber) 
{ 
    try 
    { 
     TcpClient client = new TcpClient(_HostURI, _PortNumber); 
     return true; 
    } 
    catch (Exception ex) 
    { 
     MessageBox.Show("Error pinging host:'" + _HostURI + ":" + _PortNumber.ToString() + "'"); 
     return false; 
    } 
} 
+6

Dzięki, że było dokładnie to, czego szukasz! Tylko jeden pomysł: 'TcpClient' implementuje' IDisposable', więc możesz zrobić to tak: 'using (klient TcpClient = new TcpClient (_adress, port)) { return true; } ' – CeOnSql

+0

W przypadku serwera UDP, w jaki sposób upewniamy się, że serwer działa i nasłuchuje na porcie. – surega