멀티 캐스트를 사용하여 임베디드 Linux 장치에 여러 UDP 데이터 그램을 보내려고합니다. 기기의 커널 버전은 다음과 같습니다.
/ # uname -r
2.6.24.6
테스트 목적으로 여기에 있는 코드를 사용하고 있습니다 (두 개의 헤더를 추가하고 장치의 IP 주소와 일치하도록 IP 주소를 변경했습니다).
문제는 동일한 멀티 캐스트 그룹 (Windows PC)의 다른 장치가 장치가 아닌 동안 데이터를 수신 할 수 있다는 것입니다. rp_filter의 값을 수정해야한다고 어딘가에서 읽었습니다. 나는 모든 옵션을 시도했지만 아무 소용이 없었다.
나는 문제없이 장치를 서버로 실행할 수 있습니다. 그러나 그것은 단순히받지 않습니다.
참고하시기 바랍니다 netstat -g
작동하지 않습니다.
/ # netstat -g
netstat: invalid option -- g
BusyBox v1.11.2 () multi-call binary
Usage: netstat [-laentuwxr]
Display networking information
Options:
-l Display listening server sockets
-a Display all sockets (default: connected)
-e Display other/more information
-n Don't resolve names
-t Tcp sockets
-u Udp sockets
-w Raw sockets
-x Unix sockets
-r Display routing table
따라서 그룹 멤버십을 확인할 수 없습니다.
추신 : 나는 리눅스 PC에서 동일한 프로그램 (위 링크의 코드)을 실행했으며 정상적으로 작동했습니다. 따라서 코드는 문제가 아닙니다.
해결했습니다. 시스템에서 찾을 수있는 모든 것을 엉망으로 만든 후 무차별 모드에서 eth0을 실행하여 작동하도록했습니다.
ifconfig eth0 promisc
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다