node中socket通讯
文章类型:node
发布者:hp
发布时间:2023-04-22
一:定义
1:又称套接字,是计算机网络中进程间通信的一种方式,用于实现客户端与服务器之间的通讯。
2:把网络上的一个端口号和 IP 地址对映到一个进程中,使得数据可以在进程间进行传输和交换。
3:常用的协议有 TCP 和 UDP。
A:TCP 是面向连接的、可靠的传输协议,提供了数据完整性保证和数据传输的可靠性保证,适合于需要高可靠性的数据传输;
B:UDP 是面向无连接的传输协议,不提供数据完整性保证和数据传输的可靠性保证,适合于数据传输速度要求高、对数据完整性要求不高的场景
二:实现步骤
1:创建一个服务器端和一个或多个客户端,服务器端会监听一个指定的端口等待客户端的连接请求。
2:客户端通过指定服务器 IP 地址和端口号来连接服务器端。
3:一旦客户端连接成功,服务器端就会接收来自客户端的数据,客户端也可以向服务器端发送数据。
4:服务器端接收到数据后,对数据进行处理,并将处理结果发送回客户端。
5:客户端接收到服务器端发送的数据后,对数据进行处理。
6:通信完成后,客户端和服务器端关闭连接。
三:代码演示
const net = require('net');
const server = net.createServer((socket) => {
console.log('客户端已连接');
socket.on('data', (data) => {
console.log(`接收到客户端发送的数据:${data}`);
socket.write(`已收到数据:${data}`);
});
socket.on('close', () => {
console.log('客户端已断开连接');
});
});
server.listen(8888, () => {
console.log('服务器已启动');
});
const net = require('net');
const client = net.createConnection({ port: 8888 }, () => {
console.log('已连接到服务器');
client.write('Hello, server!');
});
client.on('data', (data) => {
console.log(`接收到服务器发送的数据:${data}`);
client.end();
});
client.on('end', () => {
console.log('已断开与服务器的连接');
});
四:注意点
1:确保服务器端和客户端使用相同的协议(如 TCP 或 UDP)和相同的 IP 地址和端口号。
2:通讯双方需要遵循相同的通讯协议和数据格式,以便正确解析和处理数据。
3:在发送和接收数据时,需要确保数据的完整性和准确性,避免数据丢失或出错。
4:通讯过程中可能出现各种错误和异常情况,需要进行适当的异常处理和错误处理。
5:在完成通讯后,需要正确关闭连接以释放资源,避免资源泄露和安全问题。
五:总结
1:用于实现诸如实时聊天、文件传输、远程控制等功能