静态方法
- isIP(input): 测试 input 是否是 IP 地址。无效的字符串则返回 0,IPv4 地址则返回 4,IPv6的地址则返回 6。
- isIPv4(input): 如果 input 是 IPv4 地址则返回 true,否则返回 false。
- isIPv6(input): 如果 input 是 IPv6 地址则返回 true,否则返回 false。
工厂方法
- createConnection():
- 一个用于创建 net.Socket 的工厂函数,立即使用 socket.connect() 初始化链接,然后返回启动连接的 net.Socket。
- net.createConnection(options[, connectListener])
- net.createConnection(path[, connectListener]) 用于 IPC 连接。
- net.createConnection(port[, host][, connectListener]) 用于 TCP 连接。
- createServer([options][, connectionListener]):
- 创建一个新的 TCP 或 IPC 服务器。
- options
<Object>- allowHalfOpen 表明是否允许半开的 TCP 连接。默认值: false。
- pauseOnConnect 表明是否应在传入连接上暂停套接字。默认值: false。
- connectionListener 自动设置为 'connection' 事件的监听器。 返回: <net.Server>
一、net.Server 类
构造函数
-
new net.Server([options][, connectionListener]):
- options
<Object>参阅 net.createServer([options][, connectionListener])。 - connectionListener
<Function>自动设置为 'connection' 事件的监听器。 - 返回:
<net.Server>
- options
事件
-
close(had_error
<boolean>): 当server关闭的时候触发. 注意,如果有连接存在, 直到所有的连接结束才会触发这个事件,had_error 如果 socket 有传输错误就为 true。 -
connection: 当一个新的connection建立的时候触发
-
error: 'close'事件不会在这个事件触发后继续触发 除非
server.close()是手动调用. -
listening: 当服务被绑定后调用
server.listen()
属性
-
listening: 一个布尔值, 表明 server 是否正在监听连接
-
maxConnections: 置该属性使得当 server 连接数过多时拒绝连接
方法
- address(): 返回绑定的ip地址,只有到了 'listening' 事件被触发时候.才可以调用 server.address()
- listen(): 启动一个服务器来监听连接。
- server.listen([port[, host[, backlog]]][, callback])
- server.listen(path[, backlog][, callback])
- server.listen(options[, callback])
- server.listen(handle[, backlog][, callback])#
- close([callback]): 停止 server接受建立新的connections并保持已经存在的connections.
- getConnections(callback): 异步获取服务器的当前并发连接数
- 返回:
<net.Server>
- 返回:
- ref():
- unref():
二、net.Socket 类
- net.Socket 也是双工流,因此它既可读也可写,也是一个 EventEmitter。
构造函数
- new net.Socket([options]):
-
options<Object>可用选项有: -
fd:<number>如果指定了该参数,则使用一个给定的文件描述符包装一个已存在的 socket,否则将创建一个新的 socket。 -
allowHalfOpen<boolean>指示是否允许半打开的 TCP 连接。详情查看net.createServer()和'end'事件。默认是false`。 -
readable当传递了fd时允许读取 socket,否则忽略。默认false。 -
writable当传递了fd时允许写入 socket,否则忽略。默认false。
-
事件
-
close(had_error
<boolean>): 一旦 socket 完全关闭就发出该事件 -
connect: 当一个 socket 连接成功建立的时候触发该事件
-
data: 当接收到数据的时触发该事件
-
end: 当 socket 的另一端发送一个 FIN 包的时候触发,从而结束 socket 的可读端。
-
drain: 当写入缓冲区变为空时触发。可以用来做上传节流。
-
error(err): 当错误发生时触发。'close' 事件也会紧接着该事件被触发。
-
lookup: 在找到主机之后创建连接之前触发
- err | 错误对象。查看 dns.lookup()。
- address IP 地址。
- family | 地址类型。查看 dns.lookup()。
- host 主机。
-
ready: 套接字准备好使用时触发。'connect' 后立即触发。
-
timeout: 当 socket 超时的时候触发。该事件只是用来通知 socket 已经闲置。用户必须手动关闭。
属性
-
bufferSize: net.Socket 具有该属性,socket.write() 工作时需要
-
bytesRead: 接收的字节数量。
-
bytesWritten: 发送的字节数量。
-
connecting: 如果为
true则socket.connect(options[, connectListener])被调用但还未结束。 -
destroyed: 个布尔值,用来指示连接是否已经被销毁。
-
localAddress: 远程客户端连接的本地 IP 地址字符串。
-
localPort: 用数字表示的本地端口。例如 80 或 21。
-
remoteAddress: 用字符串表示的远程 IP 地址。
-
remoteFamily: 用字符串表示的远程 IP 协议族。
-
remotePort: 用数字表示的远程端口。
方法
-
setEncoding([encoding]):
-
write(data[, encoding][, callback]): 在 socket 上发送数据
-
address(): 返回操作系统报告的 socket 的地址、地址族和端口。
-
socket.connect():
socket.connect(options[, connectListener]) socket.connect(path[, connectListener]) //用于 IPC 连接。 socket.connect(port[, host][, connectListener]) //用于 TCP 。 -
destroy([exception]): 确保在该 socket 上不再有 I/O 活动。
-
end([data][, encoding]): 半关闭 socket。例如发送一个 FIN 包。服务端仍可以发送数据。
-
pause(): 暂停读写数据。
-
resume(): 在调用
socket.pause()之后恢复读取数据。 -
ref(): 与 unref 相反,在一个已经调用 unref 的 socket 中调用 ref,如果 socket 是仅存的 socket,则程序不会退出(默认)
-
unref():
-
setKeepAlive([enable][, initialDelay]): 启用/禁用长连接功能, 并且在第一个长连接探针被发送到一个空闲的 socket 之前可选则配置初始延迟。
-
setNoDelay([noDelay]): 默认情况下 TCP 连接使用 Nagle 算法,在发送之前缓冲数据。将 noDelay 设置为 true 将会在每次 socket.write() 被调用的时候立即发送数据
-
setTimeout(timeout[, callback]): 当 socket 在 timeout 毫秒不活动之后将其设置为超时状态。