在Linux上进行Node.js网络编程,您可以使用内置的net
模块、http
模块、dgram
模块等进行网络通信。以下是一些基本示例:
net
模块创建TCP服务器和客户端: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端口');
});
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('已断开与服务器的连接');
});
http
模块创建HTTP服务器和客户端:HTTP服务器:
const http = require('http');
const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hello World\n');
});
server.listen(3000, () => {
console.log('HTTP服务器监听在3000端口');
});
HTTP客户端:
const http = require('http');
const req = http.request({ hostname: 'localhost', port: 3000 }, (res) => {
console.log(`状态码: ${res.statusCode}`);
res.setEncoding('utf8');
res.on('data', (chunk) => {
console.log(`响应主体: ${chunk}`);
});
});
req.on('error', (e) => {
console.error(`请求遇到问题: ${e.message}`);
});
req.end();
dgram
模块创建UDP服务器和客户端: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.bind(3000);
UDP客户端:
const dgram = require('dgram');
const client = dgram.createSocket('udp4');
const message = '你好,UDP服务器!';
client.send(message, 3000, 'localhost', (err) => {
if (err) {
console.error(`发送消息时出错: ${err.message}`);
} else {
console.log('消息已发送');
}
client.close();
});
这些示例展示了如何在Linux上使用Node.js进行基本的网络编程。您可以根据需要修改这些示例以满足您的需求。