2009-12-09 2 views
1

유형 필드에 쓰여진 데이터 길이의 원시 이더넷 프레임을 보내려고합니다. 유효한 이더넷 프레임이어야합니다. 이에 대한 내 코드는 다음과 같습니다.유형 필드에 데이터 필드 길이가있는 원시 이더넷 패킷을 보냅니다.

ethData = "foobar" 

proto =len(ethData) 

if proto < 46: 
    proto = 46 

soc = socket.socket(socket.AF_PACKET, socket.SOCK_RAW, proto) 
soc.bind((iface, proto)) 

어떤 이유로 든 반대쪽에는 패키지를 읽을 수 없습니다. 이유가 궁금합니다. 내 무선 드라이버의 인터럽트 처리기에서이 패키지를 가져 오려고하므로이 패킷을 내 하드웨어에서 직접 삭제해야하거나 전혀 보내지 않아야합니다. 문제는 그 이유입니다.

+0

Windows 또는 비 Win 플랫폼에서만 필요합니까? –

답변

0

죄송합니다. 내 잘못입니다. 방금 패킷의 잘못된 부분을 파싱하고 출력을 얻지 못했습니다. 내 잘못이야. 패키지는 예상대로 설치됩니다.

관련 문제