在Linux上使用Node.js进行网络编程,通常会涉及到创建TCP服务器、TCP客户端、UDP服务器或UDP客户端。Node.js的核心模块net和dgram分别提供了对TCP和UDP协议的支持。以下是一些基本的示例和步骤,帮助你在Linux环境下使用Node.js进行网络编程。
使用net模块创建一个TCP服务器:
const net = require('net');
const server = net.createServer((socket) => {
console.log('客户端已连接');
// 接收数据
socket.on('data', (data) => {
console.log(`接收到数据: ${data}`);
socket.write(`服务器回复: ${data}`);
});
// 客户端断开连接
socket.on('end', () => {
console.log('客户端已断开连接');
});
});
server.listen(3000, () => {
console.log('TCP服务器监听在端口 3000');
});
使用net模块创建一个TCP客户端:
const net = require('net');
const client = net.createConnection({ port: 3000 }, () => {
console.log('已连接到服务器');
client.write('你好,服务器!');
});
client.on('data', (data) => {
console.log(`收到服务器消息: ${data}`);
client.end();
});
client.on('end', () => {
console.log('已断开与服务器的连接');
});
使用dgram模块创建一个UDP服务器:
const dgram = require('dgram');
const server = dgram.createSocket('udp4');
server.on('listening', () => {
const address = server.address();
console.log(`UDP服务器监听在 ${address.address}:${address.port}`);
});
server.on('message', (msg, rinfo) => {
console.log(`收到来自 ${rinfo.address}:${rinfo.port} 的消息: ${msg}`);
server.send(`服务器回复: ${msg}`, rinfo.port, rinfo.address);
});
server.bind(3001);
使用dgram模块创建一个UDP客户端:
const dgram = require('dgram');
const client = dgram.createSocket('udp4');
const message = Buffer.from('你好,UDP服务器!');
client.send(message, 3001, 'localhost', (err) => {
if (err) throw err;
console.log('消息已发送');
});
client.on('message', (msg, rinfo) => {
console.log(`收到服务器消息: ${msg}`);
client.close();
});
.js文件,例如tcp_server.js、tcp_client.js、udp_server.js和udp_client.js。node命令运行这些脚本:node tcp_server.js
node tcp_client.js
node udp_server.js
node udp_client.js
npm安装第三方库来扩展功能,例如socket.io用于WebSocket通信。通过这些基本示例,你可以在Linux上使用Node.js进行网络编程。根据具体需求,你可以进一步扩展和优化这些代码。