stream_socket_recvfrom
(PHP 5)
stream_socket_recvfrom — Lit des données depuis un socket, connecté ou pas
Description
$socket
, int $length
[, int $flags
= 0
[, string &$address
]] )
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
Exemples
Exemple #1 Exemple avec stream_socket_recvfrom()
<?php /* Ouvre un socket sur le port 1234 de localhost */ $server = stream_socket_server('tcp://127.0.0.1:1234'); /* Accepte une connexion */ $socket = stream_socket_accept($server); /* Lit un paquet (1500 est la taille classique MTU) de données OOB */ echo "Received Out-Of-Band: '" . stream_socket_recvfrom($socket, 1500, STREAM_OOB) . "'\n"; /* Lit les données normales in-band, mais ne modifie rien */ echo "Data: '" . stream_socket_recvfrom($socket, 1500, STREAM_PEEK) . "'\n"; /* Relit le même paquet, mais vide le buffer. */ echo "Data: '" . stream_socket_recvfrom($socket, 1500) . "'\n"; /* Terminaison */ 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
- stream_socket_sendto() - Envoie un message au socket, connecté ou pas
- stream_socket_client() - Ouvre une connexion socket Internet ou Unix
- stream_socket_server() - Crée un socket serveur Unix ou Internet