8.126 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_bucket_append . stream_bucket_make_writeable . stream_bucket_new . stream_bucket_prepend . 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.126.39 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étruites, suivant le type
de socket utilisée (par exemple UDP).
|
Voir aussi
stream_socket_sendto
,
stream_socket_client
et
stream_socket_server
.
|