Broadcast

Материал из Xgu.ru

Перейти к: навигация, поиск

Широковешательный трафик (broadcast) — это ...


[править] Вопросы и ответы

[править] Как проверить, что широковещательный трафик передаётся?

На одной машине запускаем netcat-сервер:

   # server
   netcat -l -u -p 54321


На другой машине запускаем netcat-клиент, который передаёт данные на широковещательный интерфейс:

   # host
   echo "foo" | netcat -ub 192.168.1.255 54321

На первом адресе мы должны получить отправленные данные.

Если netcat'а нет, но есть, скажем, python, то проверить можно так:

Клиент:

import socket

UDP_IP = "192.168.1.255"
UDP_PORT = 5005
MESSAGE = "Hello, World!"

print "UDP target IP:", UDP_IP
print "UDP target port:", UDP_PORT
print "message:", MESSAGE

sock = socket.socket(socket.AF_INET, # Internet
                     socket.SOCK_DGRAM) # UDP
sock.bind(('', 0))
sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
sock.sendto(MESSAGE, (UDP_IP, UDP_PORT))

Сервер:

import socket

UDP_IP = "192.168.1.255"
UDP_PORT = 5005

sock = socket.socket(socket.AF_INET, # Internet
                     socket.SOCK_DGRAM) # UDP
sock.bind((UDP_IP, UDP_PORT))

while True:
    data, addr = sock.recvfrom(1024) # buffer size is 1024 bytes
    print "received message:", data

Источник: [1], [2]


Источник — «http://xgu.ru/wiki/Broadcast»