(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)
socket_recvfrom — Reçoit des données d'un socket, connecté ou pas
$socket,&$data,$length,$flags,&$address,&$port = null
   La fonction socket_recvfrom() reçoit
   length octets de données du buffer data
   depuis address sur le port port (si le socket
   n'est pas du type AF_UNIX), en utilisant
   socket. socket_recvfrom() peut être utilisé
   pour récupérer les données depuis des sockets connectées ou non. De plus,
   un ou plusieurs drapeaux peuvent être spécifiés pour modifier ce comportement.
  
   Les paramètres address et port
   doivent être passés par référence. Si le socket n'est pas connecté,
   address contiendra l'adresse internet de l'hôte distant ou
   le chemin du socket Unix. Si le socket est connecté, address
   vaut null. De plus, le paramètre port contiendra
   le port de l'hôte distant dans le cas d'un socket AF_INET ou
   AF_INET6.
  
Note: Cette fonction gère les chaînes binaires.
socket
       Le paramètre socket doit être une instance
       de Socket créé par socket_create().
      
dataLes données récupérées seront placées dans la variable spécifiée par ce paramètre.
length
       Jusqu'à length octets doivent être récupérés
       de l'hôte distant.
      
flags
       La valeur de ce paramètre peut être une combinaison des drapeaux suivants,
       joints par un OU binaire (|).
      
| Drapeau | Description | 
|---|---|
| MSG_OOB | Processus en dehors de la bande de données. | 
| MSG_PEEK | Reçoit les données depuis le début de la file de réception sans les supprimer de cette file. | 
| MSG_WAITALL | Bloque tant qu'au moins lengthoctets n'ont pas
           été reçus. Cependant, si un signal est reçu ou l'hôte distant
           se déconnecte, la fonction pourra retourner moins de données. | 
| MSG_DONTWAIT | Lorsque ce drapeau est défini, la fonction retourne des données même si elle devrait rester bloquer. | 
address
       Si le socket est du type AF_UNIX,
       address sera le chemin vers ce fichier. Sinon,
       pour les sockets non-connectés, address est l'adresse
       IP de l'hôte distant, ou null si le socket est connecté.
      
port
       Cet argument ne s'applique qu'aux sockets AF_INET et
       AF_INET6, et spécifie le port distant depuis lequel
       les données sont reçues. Si la socket est connectée,
       port vaudra null.
      
   socket_recvfrom() retourne le nombre d'octets
   reçus, ou false si une erreur survient. Le code erreur actuel peut
   être retrouvé en appelant la fonction socket_last_error().
   Ce code erreur peut être passé à la fonction socket_strerror()
   afin de récupérer une explication textuelle de l'erreur.
  
| Version | Description | 
|---|---|
| 8.0.0 | socketest désormais une instance de Socket ;
  auparavant, c'était une resource. | 
Exemple #1 Exemple avec socket_recvfrom()
<?php
$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
socket_bind($socket, '127.0.0.1', 1223);
$from = '';
$port = 0;
socket_recvfrom($socket, $buf, 12, 0, $from, $port);
echo "Réception de $buf depuis l'adresse distant $from et du port distant $port" . PHP_EOL;
?>
Cet exemple initialise un socket UDP sur le port 1223 de l'adresse 127.0.0.1 et affiche au moins 12 caractères reçus depuis l'hôte distant.