CakeFest 2024: The Official CakePHP Conference

socket_sendto

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

socket_sendtoОтправляет сообщение в сокет, независимо от того, подсоединён он или нет

Описание

socket_sendto(
    Socket $socket,
    string $data,
    int $length,
    int $flags,
    string $address,
    ?int $port = null
): int|false

Функция socket_sendto() отправляет length байт из буфера buf через сокет socket к порту port на адресе address.

Список параметров

socket

Экземпляр Socket, созданный при помощи socket_create().

data

Отправляемые данные будут взяты из буфера data.

length

length байт из буфера data будет отправлено.

flags

Значение параметра flags может быть любой комбинацией следующих флагов, соединённых при помощи двоичного оператора OR (|).

Возможные значения флагов flags
MSG_OOB Отправить данные OOB (out-of-band, внеполосные).
MSG_EOR Указывает на метку записи. Отправленные данные завершают запись.
MSG_EOF Закрывает отправляющую сторону сокета и добавляет соответствующее оповещение об этом в конец отправляемых данных. Отправленные данные завершают транзакцию.
MSG_DONTROUTE Не использовать маршрутизацию, использовать прямой интерфейс.

address

IP-адрес удалённого хоста.

port

port - это номер удалённого порта, по которому будут отправлены данные.

Возвращаемые значения

Функция socket_sendto() возвращает количество байт, отправленных на удалённый хост, или false, если произошла ошибка.

Список изменений

Версия Описание
8.0.0 socket теперь экземпляр класса Socket; ранее был ресурсом (resource).
8.0.0 port теперь допускает значение null.

Примеры

Пример #1 Пример использования socket_sendto()

<?php
$sock
= socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);

$msg = "Пинг !";
$len = strlen($msg);

socket_sendto($sock, $msg, $len, 0, '127.0.0.1', 1223);
socket_close($sock);
?>

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

  • socket_send() - Отправляет данные в подсоединённый сокет

add a note

User Contributed Notes 1 note

up
1
ole_DOT_omland_AT_gmail_DOT_com
18 years ago
Here's how you can make an udp broadcast, useful sometimes, and does seem hard to figure out hwo to do..

<?php
$sock
= socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
socket_set_option($sock, SOL_SOCKET, SO_BROADCAST, 1);
socket_sendto($sock, $broadcast_string, strlen($broadcast_string), 0, '255.255.255.255', $port);
?>
To Top