Coroutine\Socket->sendto

向指定的地址和端口发送数据。用于SOCK_DGRAM类型的socket

Coroutine\Socket->sendto(string $address, int $port, string $data) : int | false;

此方法没有协程调度,底层会立即调用sendto向目标主机发送数据。此方法不会监听可写,sendto可能会因为缓存区已满而返会false,需要自行处理。或者使用send方法

参数

  • $address:目标主机的IP地址或UnixSocket路径,sendto不支持域名,使用AF_INETAF_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");