PHP Conference Nagoya 2025

socket_sendto

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

socket_sendtoSends a message to a socket, whether it is connected or not

Description

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

The function socket_sendto() sends length bytes from data through the socket socket to the port at the address address.

Parameters

socket

A Socket instance created using socket_create().

data

The sent data will be taken from buffer data.

length

length bytes from data will be sent.

flags

The value of flags can be any combination of the following flags, joined with the binary OR (|) operator.

Possible values for flags
MSG_OOB Send OOB (out-of-band) data.
MSG_EOR Indicate a record mark. The sent data completes the record.
MSG_EOF Close the sender side of the socket and include an appropriate notification of this at the end of the sent data. The sent data completes the transaction.
MSG_DONTROUTE Bypass routing, use direct interface.

address

IP address of the remote host.

port

port is the remote port number at which the data will be sent.

Return Values

socket_sendto() returns the number of bytes sent to the remote host, or false if an error occurred.

Changelog

Version Description
8.0.0 socket is a Socket instance now; previously, it was a resource.
8.0.0 port is nullable now.

Examples

Example #1 socket_sendto() Example

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

$msg = "Ping !";
$len = strlen($msg);

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

See Also

add a note

User Contributed Notes 1 note

up
1
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