본문 바로가기
파이썬

파이썬 Python에서 브로드 캐스트 패킷 받기

by º기록 2020. 12. 16.
반응형

서브넷에서 브로드 캐스트되는 udp 패킷을 보내는 다음 코드가 있습니다.

from socket import *
s=socket(AF_INET, SOCK_DGRAM)
s.setsockopt(SOL_SOCKET, SO_BROADCAST, 1)
s.sendto('this is testing',('255.255.255.255',12345))

다음 코드는 브로드 캐스트 패킷을 수신하기위한 것입니다.

from socket import *
s=socket(AF_INET, SOCK_DGRAM)
s.bind(('172.30.102.141',12345))
m=s.recvfrom(1024)
print m[0]

문제는 브로드 캐스트 패킷을 수신하지 못한다는 것입니다. 그러나 해당 포트로 전송 된 일반 udp 패킷을 성공적으로 수신하고 있습니다.

내 컴퓨터는 분명히 브로드 캐스트 패킷을 수신하고 있었는데 netcat 을 사용하여 테스트했습니다.

$ netcat -lu -p 12345                                             
this is testing^C

그렇다면 정확히 어디에 문제가 있습니까?

 

해결 방법

 

기본 주소에 바인딩 해보십시오.

s.bind(('',12345))

 

참조 페이지 https://stackoverflow.com/questions/22878625

 

 

반응형

댓글