Форум: "Сети";
Текущий архив: 2005.11.06;
Скачать: [xml.tar.bz2];
ВнизНахождение клиентом сервера Найти похожие ветки
← →
LexaDup (2005-07-19 01:07) [0]Нужна помощь в нахождении приложением-клиентом приложения-сервера в локальной сети. Прочитал, что клиент должен отослать запрос («Сервер, ты где?») на определённый порт сервера. Но как узнать IP сервера, работающего в локальной сети? Пробовал IP ставить в x.x.x.255 (широковещательная рассылка, у меня конкретно 192.168.0.255) но результата нет. Использую TClientSocket и TServerSocket.
← →
dmitry501 © (2005-07-19 05:20) [1]А подробнее нельзя написать?
Может у вас порты закрыты? Или широковещательные запросы коммутатор/шлюз/маршрутизатор рубит?
← →
Digitman © (2005-07-19 08:23) [2]
> широковещательная рассылка
> TClientSocket и TServerSocket
эти классы предназначены для организации транспортного уровня с использованием искл-но TCP, а TCP не предусматривает бродкастинг
для широковещательной рассылки нужно использовать либо мультикастинг (что весьма проблематично при использовании TClientSocket и TServerSocket и к тому же не 100%-но реализуемо для любой системы) либо использовать UDP (см. классы TIdUDPClient/Server в составе Indy-пакета)
← →
LexaDup (2005-07-19 12:01) [3]Digitman © :
спасибо, уже начинает получаться.
Т.к программа уже практически написана и при ручном вводе IP работает, переписывать её заново, используя TIdUDPClient/TIdUDPServer, очень не хочется (больше всего не радует перспектива отладки почти с 0).
Т.к задача заключается только в поиске активного сервера и первые успехи с TIdUDPClient/TIdUDPServer уже появились, думаю просто добавить этот код в основную программу (т.е. через UDP получать только адрес сервера).Кто как считает по данному поводу?
dmitry501 ©:
как я уже написал, основная программа вполне работоспособна,т.е. проблема не в закрытых портах. Насчёт обрубания запросов - вопрос сложнее.Как можно это проверить?Но если это правда не 100% реализуемо, то выход я вижу в вышенаписанном.
← →
Digitman © (2005-07-19 12:04) [4]
> Кто как считает по данному поводу?
что тут сказать ?
схема имеет право на жизнь..
← →
dmitry501 © (2005-07-19 12:10) [5]Нет 100% гарантии доставки UDP пакетов в некачественной сети (Internet, радио и пр.). Поэтому поиск серверов по UDP желательно делать несколько раз.
← →
Digitman © (2005-07-19 12:21) [6]и вообще это дурь.
клиент должен знать "свои" серверы "в лицо" !
ах не знает он, бедняжка ? что ж, это его проблемы ..
или проблемы дурня-админа, не исполняющего свои обязанности как положено
← →
isasa © (2005-07-19 12:36) [7]не мое это дело...
но неплохо определиться с маской сети на нашине клиента для широковещательной рассылки :).
У меня в юзанье есть немецкая программуля типа клиент-сервер,
с эл. ключем.
Так она для первого поиска сервера и ключа гатит запрос
255.255.255.255:порт (аллес цурюк!)
и как после этого админить сеть
← →
dmitry501 © (2005-07-19 12:59) [8]Настроить VLAN
Дальше первого коммутатора цурюк не уйдет :)
← →
isasa © (2005-07-19 13:08) [9]>Дальше первого коммутатора цурюк не уйдет :)
Ага, между прочим, нужно чтобы эта фигня работала, т.е. ходила, т.к. является частью тех. процесса фирмы (и стоит немерянных денег).
← →
DiamondShark © (2005-07-19 16:41) [10]
> Digitman © (19.07.05 12:21) [6]
> и вообще это дурь.
> клиент должен знать "свои" серверы "в лицо" !
"В лицо" -- это, конечно, очень технический термин.
Если же с кухонного на технический это переводится как "IP адрес", то требование знания IP адресов и есть дурь.
← →
LexaDup (2005-07-19 23:04) [11]Добавил поиск сервера через UDP в основную программу и провёл пару тестов.Всё работает.Сеть локальная, админа нет :). Сервер может создаваться на любой машине, поэтому вариант с введением IP сервера вручную многих не устраивал.
Единственный геморой при тестировании - фаерволы.Причём реакция разных фаерволов(ну и с разными настройками) на поиск сервера разная.Но без фаерволов всё 100% было нормально.
Итак, за неимением другой схемы останавливаюсь на:
поиск сервера по UDP-передача данных по TCP.
Всем спасибо.
← →
Eraser © (2005-07-20 01:12) [12]LexaDup (19.07.05 23:04) [11]
Могу добавить, что надо ещё посмотреть в сторону Multicast, т.к. есть ряд причин, по которым он предпочтительнее чем UDP, в идеале в программе должен быть выбор: использовать для широковещания мультикаст или UDP broadcast.
← →
Digitman © (2005-07-20 09:52) [13]
> DiamondShark © (19.07.05 16:41) [10]
Речь идет об ЛВС .. скорее всего - корпоративной ..
ЛВС же, думаю, предполагает наличие администрирующего ее персонала, в задачи которого входит в т.ч. и настройка такого рода программ (либо консультирование пользователей по настройке)
Под "знать в лицо" я подразумевал, что серверное ПО в корпоративной ЛВС как правило устанавливается на специально выделенные хосты, а не гуляет где попало.
А уж как эти хосты идентифицируются в сети - то ли по IP-адресу, то ли иначе - администраторы ЛВС, разумеется, знают лучше пользователей
← →
isasa © (2005-07-20 13:21) [14]>Сервер может создаваться на любой машине, поэтому вариант с введением IP сервера вручную многих не устраивал.
А если их несколько (ну два, например)?
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2005.11.06;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.04 c