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


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])。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。