I Multicast über PHP (v7.0.8-5) das sieht gut aus so weit senden. erhalten Multicasts mit PHP7 auf Himbeere
Mein Problem ist, dass ich die Pakete nicht empfangen kann.
CODE ist gut, ohne Firewall arbeiten
dies der Code ist.
<?php
error_reporting(E_ALL | E_STRICT);
$mesg = "123456789012" ; //the msg i want to send
$ip = "228.5.6.7"; //the ip to send
$port = 14446 ; //the port to send
//build the socket
$grpparms = array("group"=>$ip,"interface"=>"eth0") ;
$sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
socket_set_option($sock,IPPROTO_IP,MCAST_JOIN_GROUP,$grpparms);
if($argv[1] == 'r'){ //read multicasts
$from = '';
$dest_port = 0;
$binded = socket_bind($sock, '0.0.0.0',$port);
socket_recvfrom($sock, $buf, 12, 0, $from, $dest_port);
echo "Received $buf from remote address $from and remote port $dest_port" . PHP_EOL;
}
if ($argv[1] =='w'){ //write multicasts
socket_sendto($sock, $mesg, strlen($mesg), 0, $ip,$port);
echo "Send '$mesg' to $ip at port $port".PHP_EOL;
socket_close($sock) ;
}
?>
Ich nenne es mit dem Paramter 'r' lesen/empfangen und mit 'w'/Schreib-Multicasts zu senden.
beginne ich dieses Skript über ssh auf zwei verschiedene raspberrys (Vers. 2b) auf dem gleichen Schalter. Eins mit "r" und das andere mit "w".
fand ich das Misstake, war es die Firewall. Der aufrechte Code ist korrekt. –