PHP Conference Nagoya 2025

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 принимает произвольную комбинацию следующих флагов, которые соединили двоичным оператором ИЛИ — |.

Возможные значения флагов 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() - Отправляет данные в подсоединённый сокет

Добавить

Примечания пользователей 1 note

up
7
ole_DOT_omland_AT_gmail_DOT_com
19 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