Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.11.06;
Скачать: CL | DM;

Вниз

Нахождение клиентом сервера   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.057 c
3-1127561698
Viper
2005-09-24 15:34
2005.11.06
Типы данных


14-1129270901
msguns
2005-10-14 10:21
2005.11.06
Мед


4-1126033798
ArtemESC
2005-09-06 23:09
2005.11.06
Управление окнами


1-1129210536
devmaster
2005-10-13 17:35
2005.11.06
MDi Form + DLL(MDI Child) ?


14-1129529606
TButton
2005-10-17 10:13
2005.11.06
Жжжжжуть