LINUX.ORG.RU

[броадкасты] вижу свои же пакеты


0

0

Всем привет.

Вот такая прога работает отлично, только я вижу свои же пакеты(написано на питоне для простоты тестирования, на сях будут те же яйца):

#!/usr/bin/env python3
import socket

PORT=6666

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
s.bind(('', PORT))
s.sendto(b'TEST', ('<broadcast>' , PORT))
print("OMG! Incoming data:", s.recvfrom(8196))

Можно ли как-то сделать так чтобы свои пакеты не приходили? Пробывал биндится на конкретный ип, тогда броадкасты отсылаются нормально, но не принимаются этим сокетом. IP_MULTICAST_LOOP и IP_BLOCK_SOURCE, похоже, только к мультикаст-трафику относятся.

★★★★★

Можно ли как-то сделать так чтобы свои пакеты не приходили?


нет, при broadcast-е пакет получают все узлы в подсети, включая и отправителя.

Boy_from_Jungle ★★★★
()

Вот такая прога работает отлично, только я вижу свои же пакеты

чо-то я не понял что ты хочешь увидеть, а на порте 6666 других машинах что-то висит?!

Boy_from_Jungle ★★★★
()
Ответ на: комментарий от Boy_from_Jungle

всё равно не вижу логики зачем свои же пакеты приходят. По сети же оно обратно не прилетает. Проверил во фряхе, нет такого!!1

true_admin ★★★★★
() автор топика
Ответ на: комментарий от true_admin

Знания всегда актуальны :)

Знания насчёт чего?!

У меня вроде есть небольшая прога типа твоей, только на С, дома буду в субботу, так что могу посмотреть.

Boy_from_Jungle ★★★★
()
Ответ на: комментарий от true_admin

Блин совсем про тебя забыл :)
Если ещё интересно, возьми скачай исходники с книги Стивенса: «Разработка сетевых приложений», там целая папка с кучами примерами про интересующую тебя броадкастинг :)

Boy_from_Jungle ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.