Coroutine\Socket->sendto
最后更新于:2022-04-02 06:28:28
# Coroutine\\Socket->sendto
[TOC]
向指定的地址和端口发送数据。用于`SOCK_DGRAM`类型的`socket`。
~~~
Coroutine\Socket->sendto(string $address, int $port, string $data) : int | false;
~~~
此方法没有协程调度,底层会立即调用`sendto`向目标主机发送数据。此方法不会监听可写,`sendto`可能会因为缓存区已满而返会`false`,需要自行处理。或者使用`send`方法
## 参数
* `$address`:目标主机的`IP`地址或`UnixSocket`路径,`sendto`不支持域名,使用`AF_INET`或`AF_INET6`时,必须传入合法的`IP`地址,否则发送会返回失败
* `$port`:目标主机的端口,发送广播时可以为`0`
* `$data`:发送的数据,可以为文本或二进制内容,请注意`SOCK_DGRAM`发送包的最大长度为`64K`
## 返回值
* 发送成功返回发送的字节数
* 发送失败返回`false`,并设置`errCode`属性
## 实例
~~~
$socket = new Co\Socket(AF_INET, SOCK_DGRAM, 0);
$socket->sendto('127.0.0.1', 9601, "HELO");
~~~
';