.net 打开服务器文档,net 网络

2023-05-16

net.Socket 类

新增于: v0.3.4

此类是 TCP 套接字或流式 IPC 端点(在 Windows 上使用命名管道,否则使用 Unix 域套接字)的抽象。

它也是 EventEmitter。

net.Socket 可以由用户创建并直接用于与服务器交互。

例如,通过 net.createConnection() 返回它,因此用户可以使用它与服务器对话。

它也可以由 Node.js 创建并在接收到连接时传给用户。

例如,它被传给在 net.Server 上触发的 'connection' 事件的监听器,因此用户可以使用它与客户端进行交互。

new net.Socket([options])

版本历史

版本变更

v15.14.0

添加了中止信号支持。

v0.3.4

新增于: v0.3.4

options 可用的选项有:

fd 如果指定,则使用给定的文件描述符封装现有的套接字,否则将创建新的套接字。

allowHalfOpen 如果设置为 false,则当可读端结束时,套接字将自动结束可写端。

有关详细信息,请参阅 net.createServer() 和 'end' 事件。 默认值: false。

readable 当传入 fd 时,则允许在套接字上读取,否则将被忽略。 默认值: false。

writable 当传入 fd 时,则允许在套接字上写入,否则将被忽略。 默认值: false。

signal 可用于销毁套接字的中止信号。

创建新的套接字对象。

新创建的套接字可以是 TCP 套接字或流式 IPC 端点,这取决于它 connect() 什么。

'close' 事件

新增于: v0.1.90

hadError 如果套接字有传输错误,则为 true。

一旦套接字完全关闭就触发。

参数 hadError 是布尔值,表示套接字是否由于传输错误而关闭。

'connect' 事件

新增于: v0.1.90

'data' 事件

新增于: v0.1.90

接收到数据时触发。

参数 data 将是 Buffer 或 String。

数据的编码由 socket.setEncoding() 设置。

如果 Socket 触发 'data' 事件时没有监听器,则数据将丢失。

'drain' 事件

新增于: v0.1.90

当写缓冲区变空时触发。

可用于限制上传。

另请参阅:socket.write() 的返回值。

'end' 事件

新增于: v0.1.90

当套接字的另一端表示传输结束时触发,从而结束套接字的可读端。

默认情况下(allowHalfOpen 是 false)套接字将发送传输结束数据包,并在写出其挂起的写入队列后销毁其文件描述符。

但是,如果 allowHalfOpen 设置为 true,套接字将不会自动将其可写端 end(),从而允许用户写入任意数量的数据。

用户必须显式调用 end() 来关闭连接(即发回一个 FIN 数据包)。

'error' 事件

新增于: v0.1.90

发生错误时触发。

'close' 事件将在此事件之后直接调用。

'lookup' 事件

版本历史

版本变更

v5.10.0

现在支持 host 参数。

v0.11.3

新增于: v0.11.3

在解析主机名之后但在连接之前触发。

不适用于 Unix 套接字。

'ready' 事件

新增于: v9.11.0

当套接字准备好使用时触发。

'connect' 后立即触发。

'timeout' 事件

新增于: v0.1.90

如果套接字因不活动而超时则触发。

这只是通知套接字已空闲。

用户必须手动关闭连接。

socket.address()

新增于: v0.1.90

返回操作系统报告的绑定 address、地址 family 名称和套接字的 port:{ port: 12346, family: 'IPv4', address: '127.0.0.1' }

socket.bufferSize

新增于: v0.3.8弃用于: v14.6.0

此属性显示为写入而缓冲的字符数。

缓冲区可能包含编码后长度未知的字符串。

所以这个数字只是缓冲区中字节数的近似值。

net.Socket 具有 socket.write() 始终有效的特性。

这是为了帮助用户快速启动和运行。

计算机无法始终跟上写入套接字的数据量。

网络连接可能太慢了。

Node.js 将在内部对写入套接字的数据进行排队,并在可能的情况下通过网络将其发送出去。

这种内部缓冲的结果是内存可能会增长。

经历过大型或不断增长的 bufferSize 的用户应该尝试使用 socket.pause() 和 socket.resume() 来"节流"他们程序中的数据流。

socket.bytesRead

新增于: v0.5.3

接收的字节数。

socket.bytesWritten

新增于: v0.5.3

发送的字节数。

socket.connect()

在给定的套接字上发起连接。

可能的语法有:

此函数是异步的。

建立连接后,将触发 'connect' 事件。

如果连接出现问题,则将触发 'error' 事件并将错误传给 'error' 监听器,而不是触发 'connect' 事件。

最后一个参数 connectListener(如果提供)将作为 'connect' 事件的监听器添加一次。

此函数仅用于在触发 'close' 之后重新连接套接字,否则可能导致未定义的行为。

socket.connect(options[, connectListener])

版本历史

版本变更

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() 创建和打开。

仅在实现自定义套接字时使用它。

对于 TCP 连接,可用的 options 是:

port 必需的。

套接字应连接到的端口。

host 套接字应连接到的主机。 默认值: 'localhost'。

localAddress 套接字应该连接的本地地址。

localPort 套接字应连接的本地端口。

family : IP 堆栈的版本。

必须是 4、6 或 0。

值 0 表示允许 IPv4 和 IPv6 地址。 默认值: 0。

对于 IPC 连接,可用的 options 是:

path 必需的。

客户端应该连接到的路径。

请参阅标识 IPC 连接的路径。

如果提供,则忽略上面特定于 TCP 的选项。

对于这两种类型,可用的 options 包括:

onread 如果指定,传入的数据存储在单个 buffer 中,并在数据到达套接字时传给提供的 callback。

这将导致流功能不提供任何数据。

套接字将像往常一样触发 'error'、'end' 和 'close' 等事件。

pause() 和 resume() 等方法也将按预期运行。

buffer | | 用于存储传入数据的可重用内存块或返回此类数据的函数。

callback 为每个传入数据块调用此函数。

传给它的有两个参数:写入 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));

}

}

});

socket.connect(path[, connectListener])path 客户端应该连接到的路径。

请参阅标识 IPC 连接的路径。

connectListener socket.connect() 方法的常用参数。

将被添加为 'connect' 事件的监听器一次。

在给定的套接字上发起 IPC 连接。

socket.connect(port[, host][, connectListener])

新增于: v0.1.90

port 客户端应该连接到的端口。

host 客户端应该连接到的主机。

connectListener socket.connect() 方法的常用参数。

将被添加为 'connect' 事件的监听器一次。

在给定的套接字上发起 TCP 连接。

socket.connecting

新增于: v6.1.0

如果 true,则 socket.connect(options[, connectListener]) 已被调用且尚未完成。

它将保持 true 直到套接字连接,然后将其设置为 false 并触发 'connect' 事件。

请注意,socket.connect(options[, connectListener]) 回调是 'connect' 事件的监听器。

socket.destroy([error])

新增于: v0.1.90

确保此套接字上不再发生 I/O 活动。

销毁流并关闭连接。

socket.destroyed 指示连接是否被破坏。

一旦连接被破坏,就不能再使用它传输数据。

socket.end([data[, encoding]][, callback])

新增于: v0.1.90

encoding 仅当数据为 string 时使用。 默认值: 'utf8'。

callback 套接字完成时的可选回调。

半关闭套接字。

即,它发送一个 FIN 数据包。

服务器可能仍会发送一些数据。

socket.localAddress

新增于: v0.9.6

远程客户端连接的本地 IP 地址的字符串表示形式。

例如,在监听 '0.0.0.0' 的服务器中,如果客户端连接到 '192.168.1.1',则 socket.localAddress 的值将是 '192.168.1.1'。

socket.localPort

新增于: v0.9.6

本地端口的数字表示。

例如,80 或 21。

socket.pause()

暂停读取数据。

也就是说,不会触发 'data' 事件。

用于限制上传。

socket.pending

新增于: v11.2.0, v10.16.0

如果套接字尚未连接,则为 true,要么是因为 .connect() 尚未被调用,要么是因为它仍在连接过程中(参见 socket.connecting)。

socket.ref()

新增于: v0.9.1

与 unref() 相反,如果它是唯一剩下的套接字(默认行为),则在以前的 unref 套接字上调用 ref() 不会让程序退出。

如果套接字是 ref 的,再次调用 ref 将无效。

socket.remoteAddress

新增于: v0.5.10

远程 IP 地址的字符串表示形式。

例如,'74.125.127.100' 或 '2001:4860:a005::68'。

如果套接字被破坏(例如,如果客户端断开连接),则值可能是 undefined。

socket.remoteFamily

新增于: v0.11.14

远程 IP 系列的字符串表示形式。

'IPv4' 或 'IPv6'。

socket.remotePort

新增于: v0.5.10

远程端口的数字表示。

例如,80 或 21。

socket.resume()

socket.setEncoding([encoding])

新增于: v0.1.90

socket.setKeepAlive([enable][, initialDelay])

版本历史

版本变更

v13.12.0, v12.17.0

添加了 TCP_KEEPCNT 和 TCP_KEEPINTVL 套接字选项的新默认值。

v0.1.92

新增于: v0.1.92

enable 默认值: false

initialDelay 默认值: 0

启用/禁用保持活动功能,并可选择在空闲套接字上发送第一个保持活动探测之前设置初始延迟。

设置 initialDelay(以毫秒为单位)以设置接收到的最后一个数据包和第一个保持活动探测之间的延迟。

将 0 设置为 initialDelay 将使该值与默认(或先前)设置保持不变。

启用保持活动功能将设置以下套接字选项:

SO_KEEPALIVE=1

TCP_KEEPIDLE=initialDelay

TCP_KEEPCNT=10

TCP_KEEPINTVL=1

socket.setNoDelay([noDelay])

新增于: v0.1.90

noDelay 默认值: true

启用/禁用 Nagle 算法的使用。

创建 TCP 连接时,它将启用 Nagle 算法。

Nagle 的算法在数据通过网络发送之前延迟数据。

它试图以延迟为代价来优化吞吐量。

为 noDelay 传入 true 或不传入参数将禁用套接字的 Nagle 算法。

为 noDelay 传入 false 将启用 Nagle 的算法。

socket.setTimeout(timeout[, callback])

新增于: v0.1.90

将套接字设置为在套接字上 timeout 毫秒不活动后超时。

默认情况下 net.Socket 没有超时。

当空闲超时被触发时,套接字将收到 'timeout' 事件,但连接不会被切断。

用户必须手动调用 socket.end() 或 socket.destroy() 才能结束连接。

socket.setTimeout(3000);

socket.on('timeout', () => {

console.log('socket timeout');

socket.end();

});

如果 timeout 为 0,则禁用现有空闲超时。

可选的 callback 参数将被添加为 'timeout' 事件的单次监听器。

socket.timeout

新增于: v10.7.0

由 socket.setTimeout() 设置的套接字超时(以毫秒为单位)。

如果未设置超时,则为 undefined。

socket.unref()

新增于: v0.9.1

如果这是事件系统中唯一的活动套接字,则在套接字上调用 unref() 将允许程序退出。

如果套接字已经被 unref,则再次调用 unref() 将无效。

socket.write(data[, encoding][, callback])

新增于: v0.1.90

在套接字上发送数据。

第二个参数指定字符串情况下的编码。

它默认为 UTF8 编码。

如果整个数据被成功刷新到内核缓冲区,则返回 true。

如果所有或部分数据在用户内存中排队,则返回 false。

当缓冲区再次空闲时,将触发 'drain'。

可选的 callback 参数将在数据最终写完时执行(可能不会立即执行)。

有关更多信息,请参阅 Writable 流 write() 方法。

socket.readyState

新增于: v0.5.0

此属性将连接状态表示为字符串。

如果流正在连接,则 socket.readyState 是 opening。

如果流可读可写,则为 open。

如果流可读不可写,则为 readOnly。

如果流不可读写,则为 writeOnly。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

.net 打开服务器文档,net 网络 的相关文章

随机推荐

  • __sync_fetch_and_add

    最近在公司离职的前辈写的代码哪里看到了 sync fetch and add这个东东 比较好奇 找些资料学习学习 http www lxway com 4091061956 htm http www cnblogs com FrankTan
  • 2.5年, 从0到阿里

    从来没有想到自己的求职之路会这么顺利 第一次投阿里就拿到了offer 以前一直都是做好被刷的准备的 3月31号晚上收到了来自阿里的正式offer 签下录取意向书 粗略算了一下 从2012年9月份正式入学进入计算机系到2015年3月签下阿里o
  • Cmake知识整理

    目录 CMake官方文档 CMake特点CMake命令find package二进制目标构建选项CMake文本内置命令CMake工程内置命令CMake toolchainsCMake变量 信息描述部分CMake变量 动作行为部分CMake变
  • closstol-ng制作交叉编译器

    crosstool ng制作交叉编译器 本文档基于凌云物网智科实验室文档制作 1 xff0c gt gt mkdir crosstool gt gt cd crosstool gt gt wget http crosstoolng org
  • How to resolve `unmet dependencies, Depends: nodejs but it is not going to be installed` npm

    为了安装Node Red xff0c 将ubuntu 18 04 的node js v8 升到 node js v10 Supported Node versions https nodered org docs faq node vers
  • Android开源项目及库搜集

    TimLiu Android 自己总结的Android开源项目及库 github排名 https github com trending github搜索 xff1a https github com search 目录 UI 卫星菜单节选
  • 深入Linux内核架构——简介与概述

    一 内核的任务 纯技术层面上 xff0c 内核是硬件与软件的之间的一个中间层 作用是将应用程序的请求传递给硬件 xff0c 并充当底层驱动程序 xff0c 对系统中的各种设备和组件进行寻址 从应用程序视角上看 xff0c 内核可以被认为是一
  • Flask快速入门(4) — CBV写法与解析

    目录 方式一 xff1a 继承View as view 源码分析方式二 xff1a 继承MethodView 方式一 xff1a 继承View code from flask import Flask views app 61 Flask
  • Flask快速入门(6) — 常见的请求与响应参数

    Flask快速入门 6 常见的请求与响应参数 code from flask import Flask from flask import request from flask import render template from fla
  • Flask快速入门(5) — 模板渲染

    Flask快速入门 5 模板渲染 视图函数 code from flask import Flask request render template Markup app 61 Flask name 64 app route 39 39 e
  • [转帖]windows10,business版和consumer版本区别

    windows10 business版和consumer版本区别 时间 2018 07 08 10 50 来源 原创 作者 5分享 点击 7113 次 windows10系统 xff08 1803 xff09 business editio
  • \0 的ASCII码值是多少

    0 的ASCII码值是多少 include lt iostream gt using namespace std void main char c 61 39 0 39 cout lt lt int c lt lt endl 输出是0 xf
  • python练习:编写一个程序,要求用户输入10个整数,然后输出其中最大的奇数,如果用户没有输入奇数,则输出一个消息进行说明。...

    python练习 xff1a 编写一个程序 xff0c 要求用户输入10个整数 xff0c 然后输出其中最大的奇数 xff0c 如果用户没有输入奇数 xff0c 则输出一个消息进行说明 重难点 xff1a 通过input函数输入的行消息为字
  • thenApply()和thenCompose()的区别

    thenApply 和thenCompose xff08 xff09 的区别 xff1a thenapply xff08 xff09 是返回的是非CompletableFuture类型 xff1a 它的功能相当于将CompletableFu
  • 超宽带(UWB)无线通信技术介绍

    http hi baidu com hieda blog item 1cb9c81122eaed7acb80c42e html 一 超宽带无线通信技术 UWB 简介 二 超宽带无线通信技术概述 作者 李唐 刘亚峰 三 超宽带 UWB 无线通
  • TTGO T-Watch-2020 编程系列(二) 开发环境的搭建Windows

    现阶段只介绍windows下的环境搭建 xff0c Linux和Mac的环境类似 这里只介绍Arduino开发 xff0c 还可以用其他的工具 visual studio code 43 PlatformIO或者micropython等 x
  • Bag-of-words model

    Bag of words model BoW model 最早出现在NLP和IR领域 该模型忽略掉文本的语法和语序 用一组无序的单词 words 来表达一段文字或一个文档 近年来 BoW模型被广泛应用于计算机视觉中 与应用于文本的BoW类比
  • 链式队列小结

    1 队列的特性是先进先出 xff1b 最小单元是一个节点 包含了datatype和next xff0c 其中datatype是可以自定义的结构体 xff0c 包含了多种类型的数据 2 对队列有队尾指针和队头指针进行封装 后面的操作是对他进行
  • linux 学习笔记 我 整理了好久

    printenv 查看环境 hash 查看缓存命令 clock hwclock date 查看时间 help 43 command 获得帮助 command help man command 用户命令 bin usr bin usr loc
  • .net 打开服务器文档,net 网络

    net Socket 类 新增于 v0 3 4 此类是 TCP 套接字或流式 IPC 端点 在 Windows 上使用命名管道 xff0c 否则使用 Unix 域套接字 的抽象 它也是 EventEmitter net Socket 可以由