在Ubuntu上进行Node.js网络编程,你需要使用Node.js的内置模块,如http
、https
、net
、dgram
等。以下是一些基本示例,帮助你开始网络编程。
// 引入http模块
const http = require('http');
// 创建HTTP服务器
const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hello World\n');
});
// 监听3000端口
server.listen(3000, () => {
console.log('Server running at http://localhost:3000/');
});
将上述代码保存为server.js
,然后在终端中运行node server.js
。现在,你可以在浏览器中访问http://localhost:3000
,看到"Hello World"的响应。
// 引入net模块
const net = require('net');
// 创建TCP服务器
const server = net.createServer((socket) => {
console.log('Client connected');
// 接收客户端数据
socket.on('data', (data) => {
console.log(`Received data: ${data}`);
socket.write(`Server received: ${data}`);
});
// 客户端断开连接
socket.on('end', () => {
console.log('Client disconnected');
});
});
// 监听3001端口
server.listen(3001, () => {
console.log('Server running at tcp://localhost:3001/');
});
将上述代码保存为tcp_server.js
,然后在终端中运行node tcp_server.js
。现在,你可以使用telnet
或其他TCP客户端连接到tcp://localhost:3001
,并发送数据。
// 引入dgram模块
const dgram = require('dgram');
// 创建UDP服务器
const server = dgram.createSocket('udp4');
// 接收客户端数据
server.on('message', (msg, rinfo) => {
console.log(`Server received: ${msg} from ${rinfo.address}:${rinfo.port}`);
server.send(`Server received: ${msg}`, rinfo.port, rinfo.address);
});
// 监听3002端口
server.listen(3002, () => {
console.log('Server running at udp://localhost:3002/');
});
将上述代码保存为udp_server.js
,然后在终端中运行node udp_server.js
。现在,你可以使用netcat
或其他UDP客户端连接到udp://localhost:3002
,并发送数据。
这些示例仅用于演示Node.js网络编程的基本概念。你可以根据自己的需求扩展这些示例,实现更复杂的功能。