PHPerKaigi 2021

socket_sendto

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_sendto Sendet eine Nachricht an einen Socket, egal ob dieser verbunden ist oder nicht

Beschreibung

socket_sendto ( Socket $socket , string $data , int $length , int $flags , string $address , int|null $port = null ) : int|false

Die Funktion socket_sendto() sendet length Bytes aus dem Puffer data über den Port port an den Socket socket mit der Adresse address.

Parameter-Liste

socket

Eine Socket-Instanz, die mit socket_create() erzeugt wurde.

data

Die Sendedaten werden aus dem Puffer data gelesen.

length

Die Anzahl Bytes, die aus dem Puffer data gesendet werden.

flags

Der Parameter flags kann beliebige Kombinationen der folgenden Flags enthalten, die mit einem binären OR (|) verknüpft werden.

Mögliche Werte von flags
MSG_OOB Sende OOB (out-of-band) Daten.
MSG_EOR Setze eine Ende-Marke für den Datensatz. Die gesendeten Daten beenden die Übertragung.
MSG_EOF Schließe den Socket auf der Senderseite und füge eine entsprechende Benachrichtigung an das Ende der gesendeten Daten an. Die gesendeten Daten beenden die Übertragung.
MSG_DONTROUTE Umgehe das Routing; sende direkt über die Schnittstelle.

address

Die IP-Adresse des enfernten Hosts.

port

port ist die Portnummer des entfernten Rechners, an den die Daten gesendet werden.

Rückgabewerte

socket_sendto() gibt die Anzahl der an den entfernten Host gesendeten Bytes zurück oder false, falls ein Fehler auftrat.

Changelog

Version Beschreibung
8.0.0 socket is a Socket instance now; previously, it was a resource.
8.0.0 port ist nun ein Nullable-Typ.

Beispiele

Beispiel #1 socket_sendto()-Beispiel

<?php
    $sock 
socket_create(AF_INETSOCK_DGRAMSOL_UDP);

    
$msg "Ping !";
    
$len strlen($msg);

    
socket_sendto($sock$msg$len0'127.0.0.1'1223);
    
socket_close($sock);
?>

Siehe auch

add a note add a note

User Contributed Notes 1 note

up
6
ole_DOT_omland_AT_gmail_DOT_com
15 years ago
Here's how you can make an udp broadcast, useful sometimes, and does seem hard to figure out hwo to do..

<?php
$sock
= socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
socket_set_option($sock, SOL_SOCKET, SO_BROADCAST, 1);
socket_sendto($sock, $broadcast_string, strlen($broadcast_string), 0, '255.255.255.255', $port);
?>
To Top