Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 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
14-1128796474
mmms
2005-10-08 22:34
2005.11.06
Примечание для программистов.


14-1129051858
Galiaf
2005-10-11 21:30
2005.11.06
Синий экран в Windows XP SP 2.


2-1129539982
Vladimir88
2005-10-17 13:06
2005.11.06
Temp Dir


4-1125314385
leonidus
2005-08-29 15:19
2005.11.06
Как поместить форму программы поверх всех?


3-1127454524
Aliv
2005-09-23 09:48
2005.11.06
invalid filename при попытке создать таблицу





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский