linux

Node.js在Linux上如何进行网络编程

小樊
44
2025-08-07 10:26:41
栏目: 编程语言

在Linux上进行Node.js网络编程,您可以使用内置的net模块、http模块、dgram模块等进行网络通信。以下是一些基本示例:

  1. 使用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('已断开与服务器的连接');
});
  1. 使用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();
  1. 使用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进行基本的网络编程。您可以根据需要修改这些示例以满足您的需求。

0
看了该问题的人还看了