В моей локальной сети работает только адрес 239.255.255.250. - PullRequest
0 голосов
/ 19 апреля 2020

Я пытаюсь немного поиграть с Multicast в настройке, которая состоит из трех ноутбуков, подключенных к одному и тому же маршрутизатору ASUS RT-AC87U (2 из них подключены через Wi-Fi, один - через Ethe rnet). Однако я не могу понять, почему работает только адрес 239.255.255.250. Я попробовал несколько разных конфигураций в моем маршрутизаторе, но, похоже, ничего не работает: (

Может кто-нибудь помочь мне понять, почему это так?

Моя простая программа написана на Python:

import socket
import struct
import sys

message = 'very important data'
multicast_group =  ('239.255.255.250', 1900)

# Create the datagram socket
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

# Set a timeout so the socket does not block indefinitely when trying
# to receive data.
sock.settimeout(2.2)

# Set the time-to-live for messages to 1 so they do not go past the
# local network segment.
ttl = struct.pack('b', 1)
sock.setsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_TTL, ttl)


try:

    # Send data to the multicast group
    print >>sys.stderr, 'sending "%s"' % message
    sent = sock.sendto(message, multicast_group)

    # Look for responses from all recipients
    while True:
        print >>sys.stderr, 'waiting to receive'
        try:
            data, server = sock.recvfrom(16)
        except socket.timeout:
            print >>sys.stderr, 'timed out, no more responses'
            break
        else:
            print >>sys.stderr, 'received "%s" from %s' % (data, server)

finally:
    print >>sys.stderr, 'closing socket'
    sock.close()


...