Запустить сервис в локальной сети; случай неизвестного адреса сервера

Эти вопросы являются новой попыткой решить предыдущий вопрос «Как получить список всех действительных IP-адресов в локальной сети, используя Javascript?» (увидеть Как получить список всех действительных IP-адресов в локальной сети, используя Javascript? )

Чтобы избежать необходимости проверять миллионы адресов, я хотел бы знать, возможно ли это по следующему сценарию (в этом случае забудьте об ограничении JavaScriipt исходного сообщения и предположите более общий язык, например C ++ и библиотеку ввода-вывода как Boost Asio)

a) Включение сервера «S» в локальной сети для предоставления некоторой услуги, например прослушивания в порту X, и получения случайного адреса (т.е. A1 = 192.168.1.35).

b) Клиент «C», которому требуется услуга, активируется в той же локальной сети, получает другой случайный адрес (скажем, A2 = 192.168.1.40).

«C» не знает адрес «S» для получения услуги. Итак, два вопроса:

1.- Могут ли «S» и «C» сами знать свои адреса (А1 и А2)?

2.- Может ли «C» отправить широковещательный запрос в локальную сеть через заданный порт X? Некоторые как «Здесь P2, некоторые в X?»

Очевидно, что если «S» прослушивает данный порт и может получить сообщение, они, в свою очередь, могут передавать свое собственное направление; так что, если «С» слушает, можно получить адрес сервера.

-1

Решение

Относительно моего первого вопроса, после некоторого копания, ответ да.

Увидеть «Часто задаваемые вопросы о Winsock Programer».

Если в Windows, как в моем случае для сервера, есть полный API с именем «IP Helper» http://msdn.microsoft.com/en-us/library/aa366073%28VS.85%29.aspx это может служить также.

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

0

Другие решения


По вопросам рекламы [email protected]