Coroutine\Socket->recvAll

最后更新于:2022-04-02 06:28:25

# Coroutine\\Socket->recvAll [TOC] > 需要版本v4.3.0及以上 接收数据, 与recv不同的是, recvAll会尽可能完整地接收响应长度的数据, 直到接收完成或遇到错误失败。 ~~~ function Coroutine\Socket->recvAll(int length = 65535, double $timeout = -1) : string | false; ~~~ ## 参数 * `$length`:需要接收的长度 * `$timeout`:设置超时时间,默认为`-1`表示永不超时 `recvAll`方法会立即挂起当前协程并监听可读事件,等待对端发送数据后,可读事件触发时,执行`recv`系统调用获取`socket`缓存区中的数据, 重复该行为直到接收到指定长度的数据或遇到错误终止,并唤醒该协程。 ## 返回值 * 接收成功返回实际数据, 并且返回的字符串长度和参数长度一致 * 接收失败返回`false`,并设置`errCode`属性 * 接收超时,错误码为`ETIMEDOUT`
';