Coroutine\Socket->send

向对端发送数据。

function Coroutine\Socket->send(string $data, double $timeout = -1) : int | false;

参数

  • $data:要发送的数据内容,可以为文本或二进制数据
  • $timeout:设置超时时间,默认为-1表示永不超时

send方法会立即执行send系统调用发送数据,当send系统调用返回错误EAGAIN时,底层将自动监听可写事件,并挂起当前协程,等待可写事件触发时,重新执行send系统调用发送数据。并唤醒该协程。

返回值

  • 发送成功返回写入的字节数,请注意实际写入的数据可能小于$data参数的长度,应用层代码需要对比返回值与strlen($data)是否相等来判断是否发送完成
  • 发送失败返回false,并设置errCode属性