Multicast

Hallo zusammen,

da ich inzwischen mit Forensuche, Google etc. nicht mehr weiterkomme, versuche ich mein Glück über diesen Weg.

Ich möchte Multicast-UDP Pakete empfangen und auswerten. Dafür benutze ich momentan folgendes Skript:


$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
if (!is_resource($socket)) {
	echo 'Kein Socket';
}
else {
	echo 'Socket angelegt';
}

if (!socket_set_option($socket, SOL_SOCKET, MCAST_JOIN_GROUP, array('group' => '239.12.255.254', 'interface' => 'eth0'))) {
	echo 'Kann Options nicht setzen: '.socket_strerror(socket_last_error());
}

Leider funktioniert die letzte Funktion mit dem Setzen der Sockel Option nicht. Ich bekomme immer den Fehler „Beim Aufruf von setsockopt wurde eine nicht unterstützte Funktion oder Ebene angegeben.“

Das Code-Beispiel sollten laut anderen Foren aber funktionieren. Unterstützt das PHP in IP-Symcon evtl. kein Multicast?

Jede Hilfe ist willkommen…DANKE!

Eth0 ist der Name der ersten Netzwerkkarte unter Linux. Darum wird es unter Windows nicht funktionieren. Ich kann dir aber nicht sagen wie das interface dann heißt…

Gesendet von meinem Nexus 5 mit Tapatalk

Danke für den Hinweis. Das hast Du natürlich recht. Ich habe nun „eth0“ gegen „0“ ersetzt. Laut Dokumentation wird dann das Default-Gateway benutzt. Leider hat das noch nichts gebracht.

Ich werde ja irgendwie das Gefühl nicht los, dass das von IPS verwendete PHP kein Multicast unterstützt? Wie könnte ich das herausfinden?

Das PHP selbst ist dafür gar nicht zuständig. Den IP-Stack stellt das Betriebssystem zur Verfügung. Vielleicht nutzt deine PHP-Bibliothek irgendwelche Besonderheiten von Linux / Unix und deshalb geht es nicht?