函数名:socket_sendto()
适用版本:PHP 4 >= 4.1.0, PHP 5, PHP 7
用法:socket_sendto(resource $socket, string $data, int $length, int $flags, string $address [, int $port = 0]) : int|false
说明: socket_sendto() 函数用于将数据发送到指定的远程地址。
参数:
- $socket:必需,一个有效的套接字资源,由 socket_create() 创建。
- $data:必需,要发送的数据。
- $length:必需,要发送的数据长度。
- $flags:可选,可用于调整发送行为的标志,默认为 0。
- $address:必需,目标地址。
- $port:可选,目标端口,默认为 0。
返回值:
- 如果成功发送数据,则返回发送的字节数。
- 如果发生错误,则返回 false,并可以通过调用 socket_last_error() 获取错误代码。
示例:
// 创建套接字
$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
// 目标地址和端口
$address = '127.0.0.1';
$port = 1234;
// 要发送的数据
$data = 'Hello, server!';
// 发送数据到指定地址
if (socket_sendto($socket, $data, strlen($data), 0, $address, $port) === false) {
echo "发送数据失败: " . socket_strerror(socket_last_error()) . "\n";
} else {
echo "成功发送了 " . strlen($data) . " 字节的数据到 $address:$port\n";
}
// 关闭套接字
socket_close($socket);
注意事项:
- 在使用 socket_sendto() 函数之前,必须先通过 socket_create() 创建一个套接字。
- 请确保传递正确的目标地址和端口,以确保数据发送到正确的目标。
- 如果发送失败,可以通过调用 socket_last_error() 获取错误代码,并使用 socket_strerror() 将错误代码转换为可读的错误信息。
- 在完成发送后,应使用 socket_close() 关闭套接字,以释放资源。