Как я могу проверить соединение с сервером с C #, учитывая IP-адрес сервера? - PullRequest
12 голосов
/ 26 сентября 2008

Как я могу программно определить, есть ли у меня доступ к серверу с данным IP-адресом с использованием C #?

Ответы [ 4 ]

18 голосов
/ 26 сентября 2008

Вы можете использовать класс Ping (.NET 2.0 и выше)

    Ping x = new Ping();
    PingReply reply = x.Send(IPAddress.Parse("127.0.0.1"));

    if(reply.Status == IPStatus.Success)
        Console.WriteLine("Address is accessible");

Возможно, вы захотите использовать асинхронные методы в производственной системе, чтобы разрешить отмену и т. Д.

10 голосов
/ 26 сентября 2008

Предполагается, что вы имеете в виду через сокет TCP:

IPAddress IP;
if(IPAddress.TryParse("127.0.0.1",out IP)){
    Socket s = new Socket(AddressFamily.InterNetwork,
    SocketType.Stream,
    ProtocolType.Tcp);

    try{   
        s.Connect(IPs[0], port);
    }
    catch(Exception ex){
        // something went wrong
    }
}

Для получения дополнительной информации: http://msdn.microsoft.com/en-us/library/4xzx2d41.aspx?ppud=4

8 голосов
/ 26 сентября 2008

Объявите строковый адрес и порт int, и вы готовы подключиться через класс TcpClient.

System.Net.Sockets.TcpClient client = new TcpClient();
try
{
    client.Connect(address, port);
    Console.WriteLine("Connection open, host active");
} catch (SocketException ex)
{
    Console.WriteLine("Connection could not be established due to: \n" + ex.Message);
}
finally
{
    client.Close();
}
0 голосов
/ 26 сентября 2008

Это должно сделать это

bool ssl;
ssl = false;
int maxWaitMillisec;
maxWaitMillisec = 20000;
int port = 555;

success = socket.Connect("Your ip address",port,ssl,maxWaitMillisec);


if (success != true) {

    MessageBox.Show(socket.LastErrorText);
    return;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...