다음은 간단한 IPv4 UDP 브로드 캐스트이며 모든 인터페이스에서 수신 대기합니다.파이썬에서 IPv6 링크 - 로컬 멀티 캐스트 UDP 데이터 그램을주고 받습니까?
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, True)
sock.bind(("", 1337))
sock.sendto("hello world", ("255.255.255.255", 1337))
while True:
data, addr = sock.recvfrom(0x100)
print "received from {0}: {1!r}".format(addr, data)
IPv4 및 IPv6 모두를 보내고 받으려면이 값을 조정하고 싶습니다.
나는 주위를 찌르고만큼 내가 할 수있는 다음과 같은 대략 내가 수행해야하는 경로입니다 생각으로 읽었습니다 :
- 은 IPv6 소켓을 작성합니다.
- 링크 또는 사이트 로컬 멀티 캐스트 그룹에 소켓을 추가하십시오.
- UDP 패킷을 사용중인 그룹의 멀티 캐스트 주소로 보냅니다.
추가 정보를 원하시면 내가 가진 내가 여러 인터페이스에 결합해야하고, 그것은 또한 멀티 캐스트 패킷을 수신한다 setsockopt()
를 사용하여 소켓을 알 수 있다는 것이다. 마지막으로 getaddrinfo()
은 전반적으로 IPv6를 사용할 수없는 IPv4로 정상적으로 "되돌아가는"데 사용할 수 있습니다.
나는 이것을 구현했지만, 주로 멀티 캐스팅 부분에서 우연히 발견된다. 파이썬에서 완전한 코드 예제를 사용하거나 필요한 상수와 주소를 생생하게 설명하는 것이 좋습니다.
이것은 나를 위해 작동하지 않았다. http://stackoverflow.com/questions/6631891/problem-with-python-ulticast-demo-code –
@Johny_M 링크가 작동하지 않습니다.를 참조하십시오. – suzanshakya
나를 위해 작동하지 않았다. 최신 듀얼 스택 멀티 캐스트 수신기가 있습니까? – enrm