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


Node.js socket.connect(options[, connectListener])用法及代碼示例


socket.connect(options[, connectListener])

曆史
版本變化
v17.7.0

現在支持 noDelaykeepAlivekeepAliveInitialDelay 選項。

v12.10.0

添加了onread 選項。

v6.0.0

hints 選項現在在所有情況下都默認為 0。以前,如果沒有 family 選項,它將默認為 dns.ADDRCONFIG | dns.V4MAPPED

v5.11.0

現在支持hints 選項。

v0.1.90

添加於:v0.1.90


參數

在給定的套接字上啟動連接。通常不需要此方法,應使用 net.createConnection() 創建和打開套接字。僅在實現自定義 Socket 時使用。

對於 TCP 連接,可用的options 是:

  • port <number> 必需。套接字應連接的端口。
  • host <string> 套接字應連接的主機。 默認: 'localhost'
  • localAddress <string> 套接字應該連接的本地地址。
  • localPort <number> 套接字應該連接的本地端口。
  • family <number> :IP 堆棧的版本。必須是 460 。值 0 表示允許 IPv4 和 IPv6 地址。 默認: 0
  • hints <number>可選的dns.lookup() 提示.
  • lookup <Function> 自定義查找函數。 默認: dns.lookup()
  • noDelay <boolean> 如果設置為 true ,它將在套接字建立後立即禁用 Nagle 算法。 默認: false
  • keepAlive <boolean> 如果設置為 true ,它會在連接建立後立即在套接字上啟用 keep-alive 函數,與 socket.setKeepAlive([enable][, initialDelay]) 中所做的類似。 默認: false
  • keepAliveInitialDelay <number> 如果設置為正數,它會設置在空閑套接字上發送第一個保活探測之前的初始延遲。 默認: 0

對於IPC 連接,可用的options 有:

對於這兩種類型,可用的options 包括:

  • onread <Object>如果指定,傳入數據存儲在單個buffer並傳遞給提供的callback當數據到達套接字時。這將導致流函數不提供任何數據。套接字將發出類似的事件'error','end', 和'close'照常。方法如pause()resume()也將按預期運行。
    • buffer <Buffer> | <Uint8Array> | <Function> 用於存儲傳入數據的可重用內存塊或返回此類數據的函數。
    • callback <Function> 為每個傳入數據塊調用此函數。向它傳遞了兩個參數:寫入 buffer 的字節數和對 buffer 的引用。從此函數返回 false 到隱式 pause() 套接字。該函數將在全局上下文中執行。

以下是使用 onread 選項的客戶端示例:

const net = require('node:net');
net.connect({
  port: 80,
  onread: {
    // Reuses a 4KiB Buffer for every read from the socket.
    buffer: Buffer.alloc(4 * 1024),
    callback: function(nread, buf) {
      // Received data is available in `buf` from 0 to `nread`.
      console.log(buf.toString('utf8', 0, nread));
    }
  }
});

相關用法


注:本文由純淨天空篩選整理自nodejs.org大神的英文原創作品 socket.connect(options[, connectListener])。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。