Почему я могу связываться только с использованием "", но не с использованием IP_ADDR? - PullRequest
0 голосов
/ 07 января 2020

Строго на основе:

Как вы используете многоадресную UDP-рассылку в 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)

Я транслирую видео с помощью VL C. Однако я могу связать, используя только IS_ALL_GROUPS = True. Каждый раз, когда я хотел бы выполнить привязку IS_ALL_GROUPS = False, я получал WinError 10049: запрошенный адрес недопустим в своем контексте. Когда я пытаюсь использовать те же сценарии отправителя и получателя, но на linux такой ошибки не возникает. Что я могу сделать в этой ситуации?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...