當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。