Position actuelle: Accueil> Catégories de fonctions> stream_socket_recvfrom

stream_socket_recvfrom

Recevoir des données d'une prise connectée ou non connectée
Nom:stream_socket_recvfrom
Catégorie:Flux
Langage de programmation:php
Description en une ligne:Recevoir des données de la prise et renvoyer les données reçues

Nom de la fonction: stream_socket_recvfrom ()

Fonction Description: La fonction Stream_Socket_RecVFrom () reçoit des données de la prise et renvoie les données reçues.

Version applicable: PHP 5> = 5.3.0, php 7

Syntaxe: stream_socket_recvfrom (Resource $ socket, int $ length [, int $ flags = 0 [, string & $ adresse]]): chaîne | false

paramètre:

  • $ socket: requis, représente une ressource de socket ouverte qui peut être créée via la fonction Stream_Socket_Client () ou Stream_Socket_Server ().
  • $ Longueur: requis, indiquant la durée maximale des données à recevoir.
  • $ Flags: facultatif, utilisé pour spécifier des options supplémentaires lors de la réception de données.
  • $ Adresse: Facultatif, utilisé pour stocker l'adresse IP et le numéro de port de l'expéditeur.

Valeur de retour: renvoie les données reçues lors du succès et renvoie false en cas d'échec.

Exemple:

  1. Recevoir des données et imprimer:

$ socket = stream_socket_client ("udp: //127.0.0.1: 1234", $ errno, $ errstr); if (! $ socket) {echo "La connexion a échoué: $ errstr ($ errno)"; } else {$ data = stream_socket_recvfrom ($ socket, 1024); Echo "Données reçues: $ DATA"; fclose ($ socket); }

  1. Recevez des données et obtenez l'adresse IP et le numéro de port de l'expéditeur:

$ socket = stream_socket_server ("udp: //127.0.0.1: 1234", $ errno, $ errstr, stream_server_bind); if (! $ socket) {echo "n'a pas réussi à démarrer le serveur: $ erstr ($ errno)"; } else {$ client = stream_socket_accept ($ socket); $ data = stream_socket_recvfrom ($ client, 1024, 0, $ adresse); Echo "Données reçues: $ DATA"; Echo "Adresse de l'expéditeur: $ Adresse"; fclose ($ client); fclose ($ socket); }

Notes:

  • La fonction Stream_Socket_RecvFrom () ne convient que pour les protocoles de transport qui prennent en charge les sockets de flux (tels que TCP, UDP).
  • Lorsque vous utilisez le protocole UDP, vous devez spécifier le préfixe du protocole "udp: //" lors de la création du socket.
  • Si le paramètre d'adresse $ est spécifié, la fonction stocke l'adresse IP et le numéro de port de l'expéditeur dans la variable.
  • Le paramètre de longueur $ spécifie la longueur maximale des données à recevoir. Si la longueur de données réelle reçue dépasse cette valeur, seule une partie des données sera renvoyée.
  • Le paramètre $ Flags peut être utilisé pour spécifier des options lors de la réception de données. Les options communes incluent MSG_WAITALL (attendez que les données de la longueur spécifiées soient reçues) et msg_dontwait (mode non bloquant).
  • Avant de recevoir des données, vous devez créer une ressource de socket, qui peut être créée à l'aide des fonctions Stream_Socket_Client () ou Stream_Socket_Server ().
Fonctions similaires