2014-04-07 11 views
7

devo controllare IP remoto e la porta è disponibile o not.If la sua è disponibile si sposterà alla prossima form.If non disponibile dovrebbe venire a quella iniziale state.I provato ad utilizzare questoCome controllare l'IP remoto e la porta è disponibile?

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

Sono mostrando l'esempio coding.it stava controllando l'IP locale e la porta e passando alla prossima form.it controlleremo la porta locale e l'IP è disponibile. Se la porta e l'IP non sono disponibili arriverà alla fase iniziale e funzionava bene. controllare la porta remota e l'IP.

risposta

23

Utilizzare la classe Ping per scoprire se il sistema è attivo e connesso, utilizzare PortScanner per verificare se la porta è aperta. controlla questi collegamenti per ulteriori letture ed esplorazioni.

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

O

un metodo molto pulito qui

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

Grazie, che era esattamente quello che stavo cercando! Una sola Idea: 'TcpClient' implementa' IDisposable' in modo che tu possa farlo in questo modo: 'using (client TcpClient = new TcpClient (_adress, port)) { return true; } ' – CeOnSql

+0

Nel caso di un server UDP, come ci si assicura che il server sia attivo e in ascolto sulla porta. – surega

Problemi correlati