socket_sendto
向套接字发送消息,无论它是否已连接
PHP 版本 4.0.0 及以上
socket_sendto() 函数通过指定的 socket 发送数据到目标地址。此函数适用于基于 UDP 协议的数据传输,可以发送数据到网络上的指定主机和端口。
socket_sendto ( resource $socket , string $message , int $length , int $flags , string $address , int $port )
返回发送的字节数,如果发送失败则返回 FALSE。
下面的代码演示如何使用 socket_sendto() 向指定的地址和端口发送一条简单的消息。
<?php // 创建一个 UDP socket $socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP); <p>if ($socket === false) {<br> echo "Socket 创建失败: " . socket_strerror(socket_last_error()) . "\n";<br> exit();<br> }</p> <p>// 定义目标地址和端口<br> $address = '127.0.0.1';<br> $port = 12345;</p> <p>// 要发送的消息<br> $message = 'Hello, world!';</p> <p>// 发送数据<br> $bytes_sent = socket_sendto($socket, $message, strlen($message), 0, $address, $port);</p> <p>if ($bytes_sent === false) {<br> echo "发送失败: " . socket_strerror(socket_last_error($socket)) . "\n";<br> } else {<br> echo "成功发送 {$bytes_sent} 字节数据到 {$address}:{$port}\n";<br> }</p> <p>// 关闭 socket<br> socket_close($socket);<br> ?><br>
这段代码首先创建一个 UDP socket,设置目标地址和端口,准备要发送的消息,然后调用 socket_sendto() 发送数据,最后关闭 socket。如果发送成功,会输出成功发送的数据字节数,如果失败,则会输出错误信息。