Node.js 知识量:9 - 37 - 115
TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP的主要作用是提供可靠的、有序的和错误校验的数据传输方式,以确保数据在网络中的可靠传输。
TCP协议通过以下机制实现可靠的数据传输:
建立连接:在传输数据之前,TCP需要通过三次握手(3-way handshake)建立连接。这可以确保双方都准备好进行数据传输。
数据的编号和排序:TCP对发送的数据进行编号,以便接收端能够按正确的顺序重新组合数据。
流量控制:TCP使用滑动窗口机制进行流量控制,以防止接收端来不及处理接收到的数据。
拥塞控制:当网络出现拥塞时,TCP会减慢发送数据的速度,以防止过多的数据在网络中造成拥塞。
错误校验:TCP使用校验和(checksum)对数据进行错误校验,以确保数据的完整性。
要在Node.js中创建TCP服务器端,可以使用Node.js的内置net模块。以下是一个简单的示例代码,用于创建一个TCP服务器:
const net = require('net'); const server = net.createServer((socket) => { console.log('客户端已连接'); socket.on('data', (data) => { console.log('收到数据:', data.toString()); socket.write('已收到您的消息: ' + data.toString() + '\n'); }); socket.on('end', () => { console.log('客户端已断开连接'); }); }); server.listen(9000, () => { console.log('服务器已启动,监听端口9000'); });
这个示例创建了一个TCP服务器,监听端口9000。当客户端连接到服务器时,服务器会打印一条消息,并在接收到客户端发送的数据时将数据打印到控制台,并将收到的消息回传给客户端。当客户端断开连接时,服务器也会打印一条相应的消息。
Node.js的TCP服务支持多种事件,这些事件可以更好地用于管理TCP连接。以下是Node.js TCP服务的一些常用事件:
data:当从客户端接收数据时触发。
end:当客户端关闭连接时触发。
error:当发生错误时触发。
close:当服务器或客户端关闭连接时触发。
secureConnection:当TLS/SSL加密连接被接受时触发(仅在使用TLS/SSL的服务器上)。
newConnection:当一个新的连接被接受时触发(在非流式服务器上)。
serverError:当在服务器上发生错误时触发。
timeout:当一个连接在接受数据之前超时时触发。
半关闭:当服务器向客户端发送FIN包后,服务器等待来自客户端的FIN包时触发。
remoteAddress:当一个客户端连接到服务器时,该事件会提供客户端的IP地址和端口号。
Copyright © 2017-Now pnotes.cn. All Rights Reserved.
编程学习笔记 保留所有权利
MARK:3.0.0.20240214.P35
From 2017.2.6