Eine Broadcast -Nachricht ist eine Nachricht, die an alle Geräte im selben Netzwerk gesendet wird, nicht an ein bestimmtes Gerät. Dies wird normalerweise in Szenarien verwendet, in denen alle Geräte im selben örtlichen Netzwerk (LAN) empfangen werden müssen, z. B. Service -Erkennung, Ankündigungen oder Aktualisierungsbenachrichtigungen.
In PHP können wir die Funktion Socket_SendTO verwenden, um Broadcast -Nachrichten zu senden. Die Zieladresse einer Broadcast -Nachricht ist in der Regel die Broadcast -Adresse des Netzwerks (z. B. 255.255.255.255 ) und muss mit dem UDP -Protokoll gesendet werden.
Um das Senden von Broadcast -Nachrichten zu implementieren, müssen wir zunächst einen UDP -Socket erstellen und dann mit der Funktion Socket_SendTO die Nachricht an die Broadcast -Adresse senden. Im Folgenden finden Sie die grundlegenden Schritte zur Implementierung von Broadcast -Funktionen:
Socket erstellen : Erstellen Sie einen UDP -Socket mit Socket_Create .
Setzen Sie Broadcast -Berechtigungen : Aktivieren Sie die Übertragung über socket_set_option .
Senden Sie Broadcast -Nachrichten : Verwenden Sie Socket_SendTO , um Nachrichten zu senden.
Sockel schließen : Schließen Sie den Socket, nachdem die Nachricht gesendet wurde.
Hier ist ein vollständiges Beispiel für das Senden von Broadcast -Nachrichten mithilfe der Funktion Socket_SendTO :
<?php
// Erstellen aUDPSteckdosen
$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
if (!$socket) {
echo "无法创建Steckdosen: " . socket_strerror(socket_last_error()) . "\n";
exit;
}
// 设置Steckdosen选项以允许广播
$opt = 1;
socket_set_option($socket, SOL_SOCKET, SO_BROADCAST, $opt);
// Meldungsinhalte übertragen
$message = "Dies ist eine Broadcast -Nachricht!";
// Sendungsadresse und Port
$broadcastAddress = '255.255.255.255';
$port = 12345;
// Senden Sie Broadcast -Nachrichten
$bytesSent = socket_sendto($socket, $message, strlen($message), 0, $broadcastAddress, $port);
if ($bytesSent === false) {
echo "Senden fehlgeschlagen: " . socket_strerror(socket_last_error()) . "\n";
} else {
echo "Die Broadcast -Nachricht wurde erfolgreich gesendet!\n";
}
// 关闭Steckdosen
socket_close($socket);
?>
Erstellen Sie Socket : Socket_Create (AF_INET, SOCK_DGRAM, SOL_UDP) wird verwendet, um einen UDP -Socket zu erstellen.
Setzen Sie Broadcast -Berechtigungen : Socket_set_option ($ Socket, Sol_Socket, SO_Broadcast, 1) Aktivieren Sie Broadcastoptionen.
Broadcast -Adresse : 255.255.255.255 ist eine häufig verwendete Broadcast -Adresse, die alle Geräte im lokalen Netzwerk darstellt.
Senden Sie Nachrichten : Socket_SendTO ($ Socket, $ message, strlen ($ message), 0, $ backbroactAddress, $ port) sendet Nachrichten über die Broadcast -Adresse und den Port.
Netzwerkkonfiguration : Stellen Sie sicher, dass Ihr Netzwerk das Rundfunk ermöglicht. Wenn Sie Einschränkungen für Ihre Firewall oder Ihr Router haben, kann dies das Senden von Sendungsnachrichten verhindern.
Broadcast -Adresse : In einigen Netzwerkkonfigurationen müssen Sie möglicherweise die Broadcast -Adresse des Subnetzes verwenden, nicht nur 255.255.255.255.255 . Dies kann durch Berechnung der Sendungsadresse des Netzwerks bestimmt werden.
Fehlerbehandlung : Wenn Sie in einer Produktionsumgebung verwendet werden, stellen Sie sicher, dass alle Fehlersituationen ordnungsgemäß behandelt werden, wie z. B. Erstellung von Socket, Meldungen zum Senden von Meldungen usw.
Die Anwendungsszenarien von Broadcast -Nachrichten sind sehr breit, und das Folgende sind einige häufige Nutzungsszenarien:
LAN Service Discovery : Das Gerät benachrichtigt andere Geräte im Netzwerk ihrer eigenen Existenz durch Rundfunkbotschaften.
Systembenachrichtigung : Senden Sie Benachrichtigungen an alle Geräte im selben Netzwerk, z. B. Systemaktualisierungen, Warnmeldungen usw.
Echtzeit-Update : Übertragung von Daten auf alle Geräte, z. B. Echtzeitstatus-Updates in Spielen oder synchronisierte Echtzeitdatenströme.