Process\Pool->listen
最后更新于:2022-04-02 06:36:01
# Process\\Pool->listen
[TOC]
监听`SOCKET`,必须在`$ipc_mode`为`SWOOLE_IPC_SOCKET`时才能使用。
~~~
function Process\Pool::listen(string $host, int $port = 0, int $backlog = 2048);
~~~
## 参数
* `$host`监听的地址,支持`TCP`和`UnixSocket`两种类型。`127.0.0.1`表示监听`TCP`地址,需要指定`$port`。`unix:/tmp/php.sock`监听`UnixSocket`地址。
* `$port`监听的端口,在`TCP`模式下需要指定。
* `$backlog`监听的队列长度
## 返回值
* 成功监听返回`true`
* 监听失败返回`false`,可调用`swoole_errno`获取错误码。监听失败后,调用`start`时会立即返回`false`
## 通信协议
向监听端口发送数据时,客户端必须在请求前增加`4`字节、网络字节序的长度值。协议格式为:
~~~
packet = htonl(strlen(data)) + data;
~~~
## 实例
~~~
$pool->listen('127.0.0.1', 8089);
$pool->listen('unix:/tmp/php.sock');
~~~
';