stream_socket_pair
stream_socket_sendto
Fonctions sur les flux
PHP Manual

# stream_socket_recvfrom

(PHP 5)

stream_socket_recvfrom — Lit des données depuis une socket, connectée ou pas

### Description

string stream_socket_recvfrom ( resource `$socket` , int `$length` [, int `$flags` = 0 [, string `&$address` ]] )

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

### Liste de paramètres

`socket`

  La socket distante.

`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 la 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 de la socket distante.

### 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 une 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ée (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 une message à la socket, connectée ou pas
- stream_socket_client() - Ouvre une connexion socket Internet ou Unix
- stream_socket_server() - Crée une socket serveur Unix ou Internet

stream_socket_pair
stream_socket_sendto
Fonctions sur les flux
PHP Manual