pid_recv()


int pid_recv ( int $pid, int/string &$buf [ , int $len, int $flags = 0 ] )

Описание

pid_recv() пытается прочитать до $len входящих байтов из внутреннего буфера сетевого устройства $pid в буфер the $buf .

Параметры

Возврат значений

Возвращается количество полученных байтов в случае успеха, в противном случае происходит PHP error.
Однако, это не ошибка, если возвращается меньшее количество байтов, чем было запрошено. Это происходит в том случае, если длина доступных данных в буфере устройства меньше запрошенной длины.

Пример

<?php
$buf = "";

$pid = pid_open("/mmap/tcp0");
pid_connect($pid, "10.3.0.10", 1470);
do
{
    $state = pid_ioctl($pid, "get state");  // get the current TCP state
    if($state == TCP_CLOSED)  // if TCP connection attempt fails, try to connect again
    {
        pid_connect($pid, "10.3.0.10", 1470);
        sleep(1);
    }
}while($state != TCP_CONNECTED);
echo "TCP connected\r\n";

while(1)
{
    $rlen = pid_recv($pid, $buf, 100);  // read the received data into $buf upto 100 bytes
    if($rlen > 0)
    {
        echo "tcp received: $rlen bytes\r\n";
        $wlen = pid_send($pid, $buf, $rlen, 0);
        echo "tcp echo sent: $wlen bytes\r\n";
    }
}
?>

Смотрите также

pid_open() / pid_close() / pid_send() / pid_ioctl()

Примечания

Отсутствуют.