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