PHP Conference Japan 2024

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() 通过套接字 socketdata 中的 length 个字节发送到地址 addressport 端口。

参数

socket

使用 socket_create() 创建的 Socket 实例。

data

发送的数据将取自缓冲区 data

length

将发送 data 中的 length 个字节。

flags

flags 的值可以是以下标志的任意组合,使用二进制或 (|) 运算符连接。

flags 的可能值
MSG_OOB 发送OOB(带外)数据。
MSG_EOR 指示记录标记。发送的数据完成了记录。
MSG_EOF 关闭套接字的发件人端,并在发送数据的末尾包含对此的适当通知。发送的数据完成了事务。
MSG_DONTROUTE 绕过路由,使用直接接口。

address

远程主机的IP地址。

port

port 是将发送数据的远程端口号。

返回值

socket_sendto() 返回发送到远程主机的字节数,如果发生错误则返回 false

变更日志

版本 描述
8.0.0 socket 现在是 Socket 实例;以前是 resource
8.0.0 port 现在可以为空。

范例

示例 #1 socket_sendto() 示例

<?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);
?>

参见

添加注释

用户贡献的注释 1 条注释

ole_DOT_omland_AT_gmail_DOT_com
19 年前
以下是如何进行UDP广播的方法,有时很有用,而且似乎很难弄清楚如何操作。

<?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