Определение IP-адреса соседей в беспроводной сети - PullRequest
1 голос
/ 10 ноября 2010

Я пытаюсь создать программу для беспроводной сетки (adhoc во всех, кроме имени).Большая часть сети будет работать с сообщениями TCP, но для определения всех соседних IP-адресов (так как они будут неизвестны при запуске), я выберу UDP Broadcast для начальных сообщений обнаружения.

В настоящее время у меня две проблемы.Во-первых, UDP Broadcast принимается только отправителем и ни одним из его соседей;во-вторых, так как принимающий сокет не может принять сокет отправителя (из-за того, что сообщение является дейтаграммой), я не могу восстановить IP-адрес.

Мне нужна методология, которая позволила бы этомуработа.

Ответы [ 2 ]

3 голосов
/ 10 ноября 2010

Вы должны получить адрес источника вместе с дейтаграммой, например, через. recvfrom . Вот версия .NET. Вам также нужно установить опцию сокета для отправки широковещательных дейтаграмм.

См. Также этот вопрос: широковещательная рассылка UDP через все сетевые карты

0 голосов
/ 10 ноября 2010

Почему UDP и почему бы не сказать, ICMP связывается с широковещательным адресом, или даже перебивает ваш путь вниз по сетевому блоку с помощью ICMP-пингов?Мне кажется, что пинг будет более подходящим для определения того, является ли конкретный хост "живым", нет?

...