stream_socket_recvfrom

(PHP 5, PHP 7, PHP 8)

stream_socket_recvfromLit des données depuis un socket, connecté ou pas

Description

stream_socket_recvfrom(
    resource$socket,
    int$length,
    int$flags = 0,
    ?string&$address = null
): string|false

stream_socket_recvfrom() accepte les données depuis un socket distant, jusqu'à un total de length octets.

Liste de paramètres

socket

Le socket distant.

length

Le nombre d'octets à recevoir de socket.

flags

La valeur de flags peut être la combinaison des constantes suivantes :

Valeurs possibles pour flags
STREAM_OOB Traite les données en mode OOB (out-of-band).
STREAM_PEEK Lit des données depuis le socket, mais n'utilise pas le buffer. Les prochains appels à fread() ou stream_socket_recvfrom() liront les mêmes données.
address

Si le paramètre address est fourni, il recevra l'adresse du socket distant.

Valeurs de retour

Retourne les données lues, sous forme de chaîne de caractères, ou false si une erreur survient.

Exemples

Exemple #1 Exemple avec stream_socket_recvfrom()

<?php

$server = stream_socket_server('tcp://127.0.0.1:1234');


$socket = stream_socket_accept($server);


echo "Received Out-Of-Band: '" . stream_socket_recvfrom($socket, 1500, STREAM_OOB) . "'\n";


echo "Data: '" . stream_socket_recvfrom($socket, 1500, STREAM_PEEK) . "'\n";


echo "Data: '" . stream_socket_recvfrom($socket, 1500) . "'\n";


fclose($socket);
fclose($server);
?>

Notes

Note:

Si le message reçu est plus grand que length, les données supplémentaires peuvent être détruites, suivant le type de socket utilisé (par exemple UDP).

Note:

L'appel de stream_socket_recvfrom() sur les flux basés sur le socket, après l'appel de fonctions de flux basé sur un tampon (comme fread() ou stream_get_line()) lit directement les données à partir du socket et évite l'utilisation du tampon avec le flux.

Voir aussi

To Top