PHP.mk документација

socket_recvfrom

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

function.socket-recvfrom.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека function.socket-recvfrom.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
socket_recvfrom

Референца за `function.socket-recvfrom.php` со подобрена типографија и навигација.

function.socket-recvfrom.php

socket_recvfrom

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_recvfromПрима податоци од сокет, без разлика дали е поврзан или не

= NULL

socket_recvfrom(
         Сокет $socket,
         string &$data,
         int $length,
         int $flags,
         string &$address,
         int &$port = null
): int|false

На socket_recvfrom() функцијата прима length бајти податоци во data from address на порта port (ако сокетот не е од тип AF_UNIX) користејќи socket. socket_recvfrom() може да се користи за собирање податоци од поврзани и неповрзани сокети. Дополнително, може да се специфицираат една или повеќе знаменца за модифицирање на однесувањето на функцијата.

На address and port мора да се предаде по референца. Ако сокетот не е поврзан, address ќе биде поставено на интернет протокол адресата на далечинскиот домаќин или патеката до UNIX сокетот. Ако сокетот е поврзан, address is null. Дополнително, port ќе ја содржи портата на далечинскиот домаќин во случај на неповрзан AF_INET or AF_INET6 socket.

Забелешка: Пример #4 Користење на контексти на потоци

Параметри

socket

На socket мора да биде Сокет инстанца претходно креирана со socket_create().

data

Примените податоци ќе бидат преземени во променливата специфицирана со data.

length

До length бајти ќе бидат преземени од далечинскиот домаќин.

flags

Вредноста на flags може да биде која било комбинација од следниве знамиња, споени со бинарниот ИЛИ (|) оператор.

се однесува на низа од вредности на атрибутот релевантни за модификацијата. flags
Знаменце = NULL
MSG_OOB Обработи податоци надвор од опсегот.
MSG_PEEK Прими податоци од почетокот на редот за прием без да ги отстраниш од редот.
MSG_WAITALL Блокирај додека не се примат најмалку length се примат. Сепак, ако се фати сигнал или далечинскиот домаќин се исклучи, функцијата може да врати помалку податоци.
MSG_DONTWAIT Со овој знаменце поставен, функцијата враќа дури и ако нормално би блокирала.
address

Со овој знаменце поставен, функцијата враќа дури и ако нормално би блокирала. AF_UNIX Ако сокетот е од типот address тип, address е патеката до датотеката. Инаку, за несокетирани сокети, null е IP адресата на, далечинскиот домаќин, или

port

ако сокетот е поврзан-ориентиран. AF_INET and AF_INET6 Овој аргумент се однесува само на port сокети, и го специфицира далечинскиот порт од кој се примаат податоците. Ако сокетот е поврзан-ориентиран, null.

Вратени вредности

socket_recvfrom() ќе биде false враќа број на примени бајти, или socket_last_error()ако имало грешка. Вистинскиот код за грешка може да се добие со повикување на socket_strerror() . This code may be passed to

Дневник на промени

Верзија = NULL
8.0.0 socket е Сокет Врати ресурс или resource.

Примери

Пример #1 socket_recvfrom() example

<?php

$socket
= socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
socket_bind($socket, '127.0.0.1', 1223);

$from = '';
$port = 0;
socket_recvfrom($socket, $buf, 12, 0, $from, $port);

echo
"Received $buf from remote address $from and remote port $port" . PHP_EOL;
?>

. Овој код за грешка може да се предаде на

Види Исто така

  • socket_recv() Овој пример ќе иницира UDP сокет на порт 1223 од 127.0.0.1 и ќе отпечати најмногу 12 знаци примени од далечински домаќин.
  • socket_send() - Испраќа податоци до поврзан сокет
  • socket_sendto() - Испраќа порака до сокет, без разлика дали е поврзан или не
  • socket_create() - Креирај сокет (крајна точка за комуникација)

Белешки од корисници 4 белешки

stanislav dot eckert at vizson dot de
пред 10 години
If you use socket_recvfrom on a UDP socket and combine it with the MSG_DONTWAIT flag, it will raise a PHP Warning if there is nothing to read. AFAIK, there is no way around that warning except suppressing it with @ (i.e. you cannot check if there is data before calling socket_recvfrom).
ply2attoetensen-project.com
пред 9 години
MSG_DONTWAIT doesn't seem to exist in windows sockets. However socket_set_nonblock() seems to do the trick.
andre dot roesti at 7flex dot net
пред 14 години
Pay attention! On some PHP version the MSG_DONTWAIT flag is not defined (see https://bugs.php.net/bug.php?id=48326)
- Прима податоци од поврзан сокет
пред 18 години
I'm confused about the rerturn value of socket_recvfrom(), it said -1 when failed, but when I call like this:

if (($len = @socket_recvfrom($sock, $result, 32, 0, $ip, $port)) == -1) {
    if ($this->_debug) {
        echo "socket_read() failed: " . socket_strerror(socket_last_error()) . "\n";
    }
    return false;
}

variable $len = false, when I change the buffer length from 32 to 4096, it becomes right.
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.