.NET 4.x Поиск сервера в локальной сети - C#

Узнай цену своей работы

Формулировка задачи:

Добрый день! В локальной сети есть асинхронный сервер на сокетах. В этой же локальной сети есть программы-клиенты, которые должны взаимодействовать с сервером. Порт сервера (который он слушает) известен заранее. Вопрос:

как найти сервер?

Компов в сети 10. На 9-ти будут клиенты, на 1 сервер. Заранее спасибо!
По мотивам вот этого (Проверка, работает ли сервер), создал вот такую функцию... но работает, блин, медленно. При этом непонятно, как всё-таки проверить - сидит ли сервер на конкретном порте.
        
public List<string> FindServer(string началоАдресаСети, int старт)
{
    List<string> списокУстройствВСети = new List<string>();
    Ping pingsender = new Ping();
    PingOptions options = new PingOptions();
    options.DontFragment = true;
    byte[] buffer = Encoding.ASCII.GetBytes("test_ping");
    int i = 0;
    for (i = старт; i < 255; i++)
    {
        IPAddress adress = IPAddress.Parse(началоАдресаСети + "." + i);
        PingReply reply = pingsender.Send(adress, 10, buffer, options);
        if (reply != null && reply.Status == IPStatus.Success) { списокУстройствВСети.Add(началоАдресаСети + "." + i); }
     }
     return списокУстройствВСети;
}

Решение задачи: «.NET 4.x Поиск сервера в локальной сети»

textual
Листинг программы
IPAddress[] ips = Dns.GetHostAddresses(имяКомпьютераСервера); // выясняем все ip-адреса
foreach (IPAddress ipAddress in ips)
     if (ipAddress.AddressFamily == AddressFamily.InterNetwork) 
          ипСервера = ipAddress; // находим только ip4

ИИ для рефератов и докладов


  • Экспорт Word по ГОСТу
  • Минимум 80% уникальности текста
  • Поиск релевантных источников в интернете
  • Готовый документ за 2 минуты

Оцени полезность:

7   голосов , оценка 3.571 из 5
Похожие ответы