当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Node.js net.Server.listen()用法及代码示例


server.listen()

启动服务器侦听连接。 net.Server 可以是 TCP 或 IPC 服务器,具体取决于它所听的内容。

可能的签名:

这个函数是异步的。当服务器开始侦听时,将发出 'listening' 事件。最后一个参数callback 将被添加为 'listening' 事件的侦听器。

所有listen() 方法都可以采用backlog 参数来指定待处理连接队列的最大长度。实际长度将由操作系统通过 sysctl 设置确定,例如 Linux 上的 tcp_max_syn_backlogsomaxconn。此参数的默认值为 511(不是 512)。

所有 net.Socket 都设置为SO_REUSEADDR(有关详细信息,请参见 socket(7) )。

当且仅当在第一次 server.listen() 调用期间出现错误或已调用 server.close() 时,才能再次调用 server.listen() 方法。否则,将引发 ERR_SERVER_ALREADY_LISTEN 错误。

收听时最常见的错误之一是 EADDRINUSE 。当另一台服务器已经在侦听请求的 port /path /handle 时,就会发生这种情况。处理此问题的一种方法是在一定时间后重试:

server.on('error', (e) => {
  if (e.code === 'EADDRINUSE') {
    console.log('Address in use, retrying...');
    setTimeout(() => {
      server.close();
      server.listen(PORT, HOST);
    }, 1000);
  }
});

相关用法


注:本文由纯净天空筛选整理自nodejs.org大神的英文原创作品 net.Server.listen()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。