xibriz Skrevet 12. november 2011 Del Skrevet 12. november 2011 (endret) Er det noen her som har fått UDP multicast til å fungere? (jeg må ha det til å fungere på python 2.4) Jeg har lest her: http://wiki.python.org/moin/UdpCommunication her: http://stackoverflow.com/questions/603852/multicast-in-python og her: http://svn.python.org/projects/python/trunk/Demo/sockets/mcast.py Men jeg får ingenting til å fungere. I all hovedsak så er det dette som feiler: mreq = struct.pack("4sl", socket.inet_aton(SERVEREN_SIN_IP), socket.INADDR_ANY) sock.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, mreq) #Her feiler det alltid Alltid med denne feilmeldingen: Traceback (most recent call last): File "server.py", line 71, in <module> receiver(MYGROUP_4) File "server.py", line 58, in receiver s.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, mreq) File "/usr/lib/python2.7/socket.py", line 224, in meth return getattr(self._sock,name)(*args) socket.error: [Errno 22] Invalid argument Noen som har peiling? EDIT: Jeg har ikke lov til å bruke noe 3. parts lib. Endret 12. november 2011 av xibriz Lenke til kommentar
oelbox Skrevet 14. november 2011 Del Skrevet 14. november 2011 (endret) mreq = struct.pack("4sl", socket.inet_aton(SERVEREN_SIN_IP), socket.INADDR_ANY) sock.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, mreq) #Her feiler det alltid med SERVEREN_SIN_IP så mener du da altså f.eks 192.168.1.1? Hvis ja, så er det feil. Du må bruke en multicast gruppe. Multicast grupper kan ha ip fra 224.0.0.0 til 239.255.255.255. Noen ip'er er reserverte, men det finner du mer info om dersom du søker litt på multicast. f.eks - la oss si at din servers ip er 192.168.1.1 da må du alikevel gjøre f.eks: mreq = struct.pack("4sl", socket.inet_aton("238.1.1.1"), socket.INADDR_ANY) sock.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, mreq) Husk at senderen også må sette TTL etter følgende mønster: 0: Pakken er begrenset til samme host 1: Pakken er begrenset til samme subnet <32: Pakken er begrenset til samme område/avdeling/organisasjon <64: Pakken er begrenset til samme region <128: Pakken er begrenset til samme kontinent <255: Global. Endret 14. november 2011 av oelbox 1 Lenke til kommentar
xibriz Skrevet 15. november 2011 Forfatter Del Skrevet 15. november 2011 Takk for hjelpen Nå kjørte koden plutselig når jeg anga en IP i multicast group rangen. Jeg var ikke klar over at det var en egen IP range for det. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå