socket.connect(options[, connectListener])
options
<Object>connectListener
<Function>socket.connect()
方法的常用参数。 将被添加为'connect'
事件的监听器一次。- 返回: <net.Socket> 套接字自身
在给定的套接字上发起连接。
一般不需要这个方法,套接字应该用 net.createConnection()
创建和打开。
仅在实现自定义套接字时使用它。
对于 TCP 连接,可用的 options
是:
port
<number> 必需的。 套接字应连接到的端口。host
<string> 套接字应连接到的主机。 默认值:'localhost'
。localAddress
<string> 套接字应该连接的本地地址。localPort
<number> 套接字应连接的本地端口。family
<number>: IP 堆栈的版本。 必须是4
、6
或0
。 值0
表示允许 IPv4 和 IPv6 地址。 默认值:0
。hints
<number> 可选的dns.lookup()
提示。lookup
<Function> 自定义查找函数。 默认值:dns.lookup()
.
对于 IPC 连接,可用的 options
是:
path
<string> 必需的。 客户端应该连接到的路径。 请参阅标识 IPC 连接的路径。 如果提供,则忽略上面特定于 TCP 的选项。
对于这两种类型,可用的 options
包括:
onread
<Object> 如果指定,传入的数据存储在单个buffer
中,并在数据到达套接字时传给提供的callback
。 这将导致流功能不提供任何数据。 套接字将像往常一样触发'error'
、'end'
和'close'
等事件。pause()
和resume()
等方法也将按预期运行。buffer
<Buffer> | <Uint8Array> | <Function> 用于存储传入数据的可重用内存块或返回此类数据的函数。callback
<Function> 为每个传入数据块调用此函数。 传给它的有两个参数:写入buffer
的字节数和对buffer
的引用。 从此函数返回false
以隐式pause()
套接字。 该函数将在全局上下文中执行。
以下是使用 onread
选项的客户端示例:
const net = require('net');
net.connect({
port: 80,
onread: {
// 每次从套接字读取时重用 4KiB 缓冲区。
buffer: Buffer.alloc(4 * 1024),
callback: function(nread, buf) {
// 接收到的数据在 `buf` 中可用,从 0 到 `nread`。
console.log(buf.toString('utf8', 0, nread));
}
}
});
options
<Object>connectListener
<Function> Common parameter ofsocket.connect()
methods. Will be added as a listener for the'connect'
event once.- Returns: <net.Socket> The socket itself.
Initiate a connection on a given socket. Normally this method is not needed,
the socket should be created and opened with net.createConnection()
. Use
this only when implementing a custom Socket.
For TCP connections, available options
are:
port
<number> Required. Port the socket should connect to.host
<string> Host the socket should connect to. Default:'localhost'
.localAddress
<string> Local address the socket should connect from.localPort
<number> Local port the socket should connect from.family
<number>: Version of IP stack. Must be4
,6
, or0
. The value0
indicates that both IPv4 and IPv6 addresses are allowed. Default:0
.hints
<number> Optionaldns.lookup()
hints.lookup
<Function> Custom lookup function. Default:dns.lookup()
.
For IPC connections, available options
are:
path
<string> Required. Path the client should connect to. See Identifying paths for IPC connections. If provided, the TCP-specific options above are ignored.
For both types, available options
include:
onread
<Object> If specified, incoming data is stored in a singlebuffer
and passed to the suppliedcallback
when data arrives on the socket. This will cause the streaming functionality to not provide any data. The socket will emit events like'error'
,'end'
, and'close'
as usual. Methods likepause()
andresume()
will also behave as expected.buffer
<Buffer> | <Uint8Array> | <Function> Either a reusable chunk of memory to use for storing incoming data or a function that returns such.callback
<Function> This function is called for every chunk of incoming data. Two arguments are passed to it: the number of bytes written tobuffer
and a reference tobuffer
. Returnfalse
from this function to implicitlypause()
the socket. This function will be executed in the global context.
Following is an example of a client using the onread
option:
const net = require('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));
}
}
});