Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.77/26: Рейтинг темы: голосов - 26, средняя оценка - 4.77
0 / 0 / 1
Регистрация: 10.01.2014
Сообщений: 18
1
.NET 4.x

Поиск сервера в локальной сети

20.01.2014, 14:36. Просмотров 4867. Ответов 5
Метки нет (Все метки)


Добрый день!

В локальной сети есть асинхронный сервер на сокетах. В этой же локальной сети есть программы-клиенты, которые должны взаимодействовать с сервером.

Порт сервера (который он слушает) известен заранее.

Вопрос: как найти сервер?
Компов в сети 10. На 9-ти будут клиенты, на 1 сервер.

Заранее спасибо!

Добавлено через 1 час 52 минуты
По мотивам вот этого (Проверка, работает ли сервер), создал вот такую функцию... но работает, блин, медленно.
При этом непонятно, как всё-таки проверить - сидит ли сервер на конкретном порте.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
        
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 списокУстройствВСети;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.01.2014, 14:36
Ответы с готовыми решениями:

БД в локальной сети без сервера
Здравствуйте, есть необходимость создать программу, которая будет работать с БД. Но проблема в том...

Поиск файлов по локальной сети (FTP SMB)
Существуют ли примеры реализации вышеописанной задачи на ASP? Заранее благодарен...

Поиск компьютеров в локальной сети и мониторинг их трафика
Здравствуйте! Нужно написать программу которая ищет компьютеры в локальной сети с возможностью...

Поиск сервера в локальной сети
подскажите пожалуйста, вот я написал клиент-серверное приложение и у меня сейчас на стороне...

__________________
Помогаю в написании студенческих работ здесь.
Записывайтесь на профессиональные курсы С#-разработчиков‌
5
2973 / 2515 / 778
Регистрация: 05.07.2013
Сообщений: 12,177
20.01.2014, 20:08 2
Зачем такие сложности? Вы не знаете айпишник сервера? Для чего его искать?
0
0 / 0 / 1
Регистрация: 10.01.2014
Сообщений: 18
21.01.2014, 15:07  [ТС] 3
Цитата Сообщение от xoraxax Посмотреть сообщение
Зачем такие сложности? Вы не знаете айпишник сервера? Для чего его искать?
Объяснюсь.

В сети несколько компьютеров, на одном из них запущен сервер. Его ip я не знаю. Допустим, что и его имени я тоже не знаю. Поэтому, для того, чтобы с ним мог связываться клиент, его необходимо найти: ведь сокет-соединение просит указать конкретный ip-адрес, на который будут посылаться сообщения.

P.S.: Вопрос всё ещё актуален, хотя частичное решение есть.

C#
1
2
3
4
IPAddress[] ips = Dns.GetHostAddresses(имяКомпьютераСервера); // выясняем все ip-адреса
foreach (IPAddress ipAddress in ips)
     if (ipAddress.AddressFamily == AddressFamily.InterNetwork) 
          ипСервера = ipAddress; // находим только ip4
Но как быть, если имя компьютера не известно?
А известно лишь следующее: один из компьютеров в локальной сети имеет сокет-сервер, слушающий заранее известный порт.
0
2973 / 2515 / 778
Регистрация: 05.07.2013
Сообщений: 12,177
21.01.2014, 15:44 4
http://codeidol.com/csharp/csh... adcasting/

почитайте тут

Добавлено через 17 минут
Если вы, все же, ищете какой-то чужой сервер, который не в курсе, как реагировать на бродкасты, тогда придется перебирать.
1
0 / 0 / 1
Регистрация: 10.01.2014
Сообщений: 18
21.01.2014, 17:25  [ТС] 5
Цитата Сообщение от xoraxax Посмотреть сообщение
http://codeidol.com/csharp/csh... adcasting/

почитайте тут

Добавлено через 17 минут
Если вы, все же, ищете какой-то чужой сервер, который не в курсе, как реагировать на бродкасты, тогда придется перебирать.
Спасибо большое, добрый человек!
Подходит!
0
4 / 3 / 1
Регистрация: 28.11.2017
Сообщений: 37
30.03.2019, 21:20 6
Rammal, а можно мне теперь посмотреть, что там подходит? А то ссылка нерабочая(
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.03.2019, 21:20

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Организация сервера в локальной сети
Здравствуйте! У меня установлен пакет Vertrigo, включающий в себя Apache с поддержкой PHP + MySQL....

Реорганизация локальной сети и сервера
Здравствуйте! В организации где я сейчас работаю, разработана локальная сеть в 2006 году. Есть...

Видимость DNS-сервера из локальной сети.
Всем привет ! тут такая ситуация, прошу помощи.... зарегистрировал себе доменное имя webbir.ru...

2 DHCP сервера в одной локальной сети
Здравствуйте! Имеются две спутниковые тарелки, которые раздают IPшники из разных подсетей. Как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.