stream_socket_pair
<<<
stream_socket_recvfrom stream_socket_sendto
>>>

8.118 Flux
8 Référence des fonctions
 Manuel PHP

Introduction
Filtres de flux
Contextes de flux
Installation
Classes Stream
Constantes pré-définies
Erreurs de flux
Exemples
stream_context_create
stream_context_get_default
stream_context_get_options
stream_context_set_option
stream_context_set_params
stream_copy_to_stream
stream_filter_append
stream_filter_prepend
stream_filter_register
stream_filter_remove
stream_get_contents
stream_get_filters
stream_get_line
stream_get_meta_data
stream_get_transports
stream_get_wrappers
stream_register_wrapper
stream_select
stream_set_blocking
stream_set_timeout
stream_set_write_buffer
stream_socket_accept
stream_socket_client
stream_socket_enable_crypto
stream_socket_get_name
stream_socket_pair
->stream_socket_recvfrom
stream_socket_sendto
stream_socket_server
stream_wrapper_register
stream_wrapper_restore
stream_wrapper_unregister

8.118.35 stream_socket_recvfrom()Lit des données depuis une socket, connectée ou pas

[ Exemples avec stream_socket_recvfrom ]   PHP 5

string  stream_socket_recvfrom ( resource   socket , int   length , int   flags , string   address )

stream_socket_recvfrom accepte les données depuis une socket distante, jusqu'à un total de length octets. Si le paramètre address est fourni, il recevra l'adresse de la socket distante.

La valeur de flags peut être la combinaison des constantes suivantes :
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.

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);
?>
Note

Si le message reçu est plus grand que length , les données supplémentaires peuvent être détruite, suivant le type de socket utilisé (par exemple UDP).

Voir aussi stream_socket_sendto , stream_socket_client et stream_socket_server .

<< stream_socket_recvfrom >>
stream_socket_pair Flux stream_socket_sendto