在Ubuntu上使用Node.js进行网络通信,通常会用到HTTP、TCP、UDP等协议。以下是一些基本的示例和步骤,帮助你在Node.js中实现网络通信。
Node.js内置了http
模块,可以用来创建HTTP服务器和客户端。
const http = require('http');
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello World\n');
});
server.listen(3000, '127.0.0.1', () => {
console.log('Server running at http://127.0.0.1:3000/');
});
const http = require('http');
const options = {
hostname: 'example.com',
port: 80,
path: '/',
method: 'GET'
};
const req = http.request(options, (res) => {
console.log(`STATUS: ${res.statusCode}`);
res.on('data', (chunk) => {
console.log(`BODY: ${chunk}`);
});
});
req.on('error', (e) => {
console.error(`problem with request: ${e.message}`);
});
req.end();
Node.js内置了net
模块,可以用来创建TCP服务器和客户端。
const net = require('net');
const server = net.createServer((socket) => {
console.log('Client connected');
socket.write('Echo server\r\n');
socket.on('data', (data) => {
console.log(`Received: ${data}`);
socket.write(data);
});
socket.on('close', () => {
console.log('Client disconnected');
});
});
server.listen(3000, () => {
console.log('Server listening on port 3000');
});
const net = require('net');
const client = net.createConnection({ port: 3000 }, () => {
console.log('Connected to server');
client.write('Hello, server!');
});
client.on('data', (data) => {
console.log(`Received: ${data}`);
client.end();
});
client.on('close', () => {
console.log('Connection closed');
});
Node.js内置了dgram
模块,可以用来创建UDP服务器和客户端。
const dgram = require('dgram');
const server = dgram.createSocket('udp4');
server.on('listening', () => {
const address = server.address();
console.log(`Server listening ${address.address}:${address.port}`);
});
server.on('message', (msg, rinfo) => {
console.log(`Server got: ${msg} from ${rinfo.address}:${rinfo.port}`);
});
server.bind(3000);
const dgram = require('dgram');
const client = dgram.createSocket('udp4');
const message = Buffer.from('Hello, UDP server!');
client.send(message, 3000, 'localhost', (err) => {
if (err) throw err;
console.log('Message sent!');
});
client.on('listening', () => {
const address = client.address();
console.log(`Client listening ${address.address}:${address.port}`);
});
client.on('message', (msg, rinfo) => {
console.log(`Client received: ${msg} from ${rinfo.address}:${rinfo.port}`);
});
如果你还没有安装Node.js,可以通过以下步骤进行安装:
下载Node.js安装包:
wget https://nodejs.org/dist/v14.17.0/node-v14.17.0-linux-x64.tar.xz
解压安装包:
tar -xf node-v14.17.0-linux-x64.tar.xz
移动到系统目录:
sudo mv node-v14.17.0-linux-x64 /usr/local/nodejs
配置环境变量:
echo 'export PATH=/usr/local/nodejs/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
验证安装:
node -v
npm -v
通过以上步骤,你可以在Ubuntu上安装Node.js并进行基本的网络通信。