Coroutine\Socket->recv

接收数据。

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

参数

  • $timeout:设置超时时间,默认为-1表示永不超时

recv方法会立即挂起当前协程并监听可读事件,等待对端发送数据后,可读事件触发时,执行recv系统调用获取socket缓存区中的数据,并唤醒该协程。

返回值

  • 接收成功返回实际数据
  • 接收失败返回false,并设置errCode属性
  • 接收超时,错误码为ETIMEDOUT

注意

  • 返回值不一定等于预期长度, 需要自行检查该次调用接收数据的长度, 如需要保证单次调用获取到指定长度的数据, 请使用recvAll方法或自行循环获取