stream_socket_recvfrom

(PHP 5, PHP 7, PHP 8)

stream_socket_recvfromRecebe dados de um socket, conectado ou não

Descrição

stream_socket_recvfrom(
    resource$socket,
    int$length,
    int$flags = 0,
    ?string&$address = null
): string|false

stream_socket_recvfrom() aceita dados de um socket remoto até a quantidade de bytes definida por length.

Parâmetros

socket

O socket remoto.

length

O número de bytes a receber do socket.

flags

O valor de flags pode ser qualquer combinação das opções a seguir:

Valores possíveis para flags
STREAM_OOB Processa dados fora-de-banda (do inglês OOB out-of-band).
STREAM_PEEK Recebe dados do socket, mas não consome o buffer. Chamadas subsequentes a fread() ou stream_socket_recvfrom() irão ver os mesmos dados.
address

Se address for fornecido, será preenchido com o endereço do socket remoto.

Valor Retornado

Retorna os dados lidos, como uma string, ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de stream_socket_recvfrom()

<?php

$server = stream_socket_server('tcp://127.0.0.1:1234');


$socket = stream_socket_accept($server);


echo "Recebido Out-Of-Band: '" . stream_socket_recvfrom($socket, 1500, STREAM_OOB) . "'\n";


echo "Dados: '" . stream_socket_recvfrom($socket, 1500, STREAM_PEEK) . "'\n";


echo "Dados: '" . stream_socket_recvfrom($socket, 1500) . "'\n";


fclose($socket);
fclose($server);
?>

Notas

Nota:

Se uma mensagem recebida for maior que o parâmetro length, os bytes excedentes podem ser descartados dependendo do tipo do socket do qual a mensagem for recebida (como no UDP).

Nota:

Chamadas a stream_socket_recvfrom() em fluxos baseados em socket, depois de chamadas a funções de fluxo baseadas em buffer (como fread() ou stream_get_line()) lêem dados diretamente do socket e ignoram o buffer de fluxo.

Veja Também

To Top