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

socket_recvfrom

Recevoir des données d'une prise, qu'elle soit orientée vers la connexion ou non
Nom:socket_recvfrom
Catégorie:Prises
Langage de programmation:php
Description en une ligne:Recevez des données de la prise spécifiée et stockez l'adresse et le port de l'expéditeur dans la variable spécifiée

Nom de la fonction: socket_recvfrom ()

Version applicable: PHP 4> = 4.1.0, PHP 5, PHP 7

Fonction Description: La fonction socket_recvfrom () reçoit des données de la prise spécifiée et stocke l'adresse et le port de l'expéditeur dans la variable spécifiée.

Syntaxe: int socket_recvfrom (ressource $ socket, string & $ buf, int $ len, int $ drapeau, string & $ name [, int & $ port]))

Description du paramètre:

  • $ socket: requis, ressource de socket spécifiée.
  • $ buf: requis, variable utilisée pour stocker les données reçues.
  • $ Len: requis, spécifiant le nombre maximum d'octets à recevoir.
  • $ Flags: Facultatif, spécifiez l'indicateur pour recevoir des données, la valeur par défaut est 0.
  • $ Name: requis, variable utilisée pour stocker l'adresse de l'expéditeur.
  • $ port: facultatif, utilisé pour stocker la variable de port de l'expéditeur, la valeur par défaut est 0.

Valeur de retour: renvoie le nombre d'octets reçus lors du succès et renvoie faux en cas d'échec.

Exemple de code:

 $socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP); if ($socket === false) { echo "socket_create() failed: " . socket_strerror(socket_last_error()) . "\n"; exit; } $bind = socket_bind($socket, '0.0.0.0', 8888); if ($bind === false) { echo "socket_bind() failed: " . socket_strerror(socket_last_error($socket)) . "\n"; exit; } $buffer = ''; $senderAddress = ''; $senderPort = 0; // 接收数据并获取发送方的地址和端口$bytes = socket_recvfrom($socket, $buffer, 1024, 0, $senderAddress, $senderPort); if ($bytes === false) { echo "socket_recvfrom() failed: " . socket_strerror(socket_last_error($socket)) . "\n"; exit; } echo "Received $bytes bytes from $senderAddress:$senderPort\n"; echo "Data: $buffer\n"; socket_close($socket);

L'exemple de code ci-dessus crée une prise UDP et se lie au port local 8888. Ensuite, utilisez la fonction socket_recvfrom () pour recevoir les données et stockez l'adresse et le port de l'expéditeur dans la variable correspondante. Enfin, sortez les données reçues, l'adresse et le port de l'expéditeur, et fermer la prise.

Remarque: L'exemple est l'utilisation de sockets UDP. Si vous devez utiliser des sockets TCP, vous devez utiliser la fonction socket_recv () pour recevoir des données.

Fonctions similaires
Articles populaires