Basing strictly on:
How do you UDP multicast in Python?
import socket
import struct
MCAST_GRP = '233.3.3.3'
MCAST_PORT = 12312
IS_ALL_GROUPS = True
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
if IS_ALL_GROUPS:
# on this port, receives ALL multicast groups
sock.bind(('', MCAST_PORT))
else:
# on this port, listen ONLY to MCAST_GRP
sock.bind((MCAST_GRP, MCAST_PORT))
mreq = struct.pack("4sl", socket.inet_aton(MCAST_GRP), socket.INADDR_ANY)
sock.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, mreq)
while True:
print sock.recv(10240)
I stream video using VLC.
However I can bind using only IS_ALL_GROUPS = True
. Any time I would like to bind by IS_ALL_GROUPS = False
I got WinError 10049: The requested address is not valid in its context.
When I try to use the same sender and receiver scripts but on the linux there is no such error.
What can I do in this situation?