发布于2026-07-05 阅读(0)
扫一扫,手机访问
用 Node.js 在 Ubuntu 上做网络编程,其实比想象中要直接得多。Node.js 内置了 HTTP、TCP、UDP 和 DNS 等一系列核心模块,底层网络通信的细节已经被封装好了,你只需要关注业务逻辑即可。下面就从几个最基础的实例入手,快速跑通一个能用的服务——这些代码虽然简单,但足以让你对 Node.js 的网络编程模型有个直观的认识。

用 http 模块,几行代码就能搭一个 Web 服务。
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('Server running at http://localhost:3000/');
});
把这段代码保存成 server.js,然后在终端运行 node server.js。接着打开浏览器访问 http://localhost:3000/,屏幕上就会输出 “Hello World”。整个过程没有任何依赖,纯粹是 Node.js 自带的能力。
如果你需要更底层的协议控制,可以用 net 模块搭建 TCP 服务。下面这个例子会在 3001 端口上监听连接,收到客户端数据后原样返回并加上前缀。
const net = require('net');
const server = net.createServer((socket) => {
console.log('Client connected');
socket.write('Hello from the server!\n');
socket.on('data', (data) => {
console.log(`Received data: ${data}`);
socket.write(`Server received: ${data}`);
});
socket.on('close', () => {
console.log('Client disconnected');
});
});
server.listen(3001, () => {
console.log('Server listening on port 3001');
});
保存为 tcp_server.js,运行 node tcp_server.js。然后用 telnet 或者 nc(netcat)连上 3001 端口,就能看到服务器返回的问候消息,并且你发的每一行内容都会被回显。
UDP 协议是无连接的,适合对丢包容忍度较高的场景,比如日志收编或游戏状态同步。用 dgram 模块实现起来也很简洁:
const dgram = require('dgram');
const server = dgram.createSocket('udp4');
server.on('listening', () => {
const address = server.address();
console.log(`UDP Server listening on ${address.address}:${address.port}`);
});
server.on('message', (msg, rinfo) => {
console.log(`Server got: ${msg} from ${rinfo.address}:${rinfo.port}`);
server.send(`Hello ${rinfo.address}`, rinfo.port);
});
server.bind(3002);
保存为 udp_server.js,运行后可以用 nc -u 向 3002 端口发送 UDP 数据包。服务端会在控制台打印收到的消息,并自动回复一个 “Hello” 加上你的 IP。
以上三个示例覆盖了 Node.js 网络编程中最常用的三种协议模型。想继续深入?可以试试用 http 模块结合 fs 做静态文件服务器,或者用 net 模块实现一个简单的聊天室。当然,实际项目中往往会引入 Express.js 这类第三方框架来简化路由和中间件处理,但这几个底层模块的理解仍然是基础中的基础。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8