(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)
socket_sendto — Отправляет сообщение в сокет независимо от состояния подключения сокета
$socket,$data,$length,$flags,$address,$port = null
Функция 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
Не использовать маршрутизацию, использовать прямой интерфейс.
addressIP-адрес удалённого хоста.
port
Параметр port устанавливает значение удалённого порта,
по которому функция отправит данные.
Функция socket_sendto() возвращает количество байтов,
которое отправила удалённый хост, или false , если возникла ошибка.
| Версия | Описание |
|---|---|
| 8.5.0 |
Теперь выбрасывает исключение ValueError ,
когда параметр port меньше 0 или больше 65535.
|
| 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);
?>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);
?>