首页主机资讯Node.js在Linux上的网络编程如何实现

Node.js在Linux上的网络编程如何实现

时间2026-01-16 16:35:04发布访客分类主机资讯浏览245
导读:在Linux上使用Node.js进行网络编程,通常会使用内置的net模块或者更高级的http、https模块。以下是使用这些模块进行网络编程的基本步骤: 1. 使用net模块创建TCP服务器和客户端 TCP服务器 const net = r...

在Linux上使用Node.js进行网络编程,通常会使用内置的net模块或者更高级的httphttps模块。以下是使用这些模块进行网络编程的基本步骤:

1. 使用net模块创建TCP服务器和客户端

TCP服务器

const net = require('net');
    

const server = net.createServer((socket) =>
 {
    
  console.log('Client connected');
    

  socket.on('data', (data) =>
 {

    console.log(`Received data: ${
data}
    `);

    socket.write(`Echo: ${
data}
    `);

  }
    );
    

  socket.on('end', () =>
 {
    
    console.log('Client disconnected');

  }
    );

}
    );
    

server.listen(3000, () =>
 {
    
  console.log('Server listening on port 3000');

}
    );
    

TCP客户端

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: ${
data}
    `);
    
  client.end();

}
    );
    

client.on('end', () =>
 {
    
  console.log('Disconnected from server');

}
    );
    

2. 使用http模块创建HTTP服务器和客户端

HTTP服务器

const http = require('http');
    

const server = http.createServer((req, res) =>
 {

  res.writeHead(200, {
 'Content-Type': 'text/plain' }
    );
    
  res.end('Hello, World!');

}
    );
    

server.listen(3000, () =>
 {
    
  console.log('Server listening on port 3000');

}
    );
    

HTTP客户端

const http = require('http');


const options = {

  hostname: 'localhost',
  port: 3000,
  path: '/',
  method: 'GET'
}
    ;
    

const req = http.request(options, (res) =>
 {

  console.log(`STATUS: ${
res.statusCode}
    `);
    
  res.on('data', (chunk) =>
 {

    console.log(`BODY: ${
chunk}
    `);

  }
    );
    
  res.on('end', () =>
 {
    
    console.log('No more data in response.');

  }
    );

}
    );
    

req.on('error', (e) =>
 {

  console.error(`problem with request: ${
e.message}
    `);

}
    );
    

req.end();
    

3. 使用https模块创建HTTPS服务器和客户端

HTTPS服务器

const https = require('https');
    
const fs = require('fs');


const options = {

  key: fs.readFileSync('path/to/key.pem'),
  cert: fs.readFileSync('path/to/cert.pem')
}
    ;
    

const server = https.createServer(options, (req, res) =>
 {

  res.writeHead(200, {
 'Content-Type': 'text/plain' }
    );
    
  res.end('Hello, Secure World!');

}
    );
    

server.listen(3000, () =>
 {
    
  console.log('Server listening on port 3000');

}
    );
    

HTTPS客户端

const https = require('https');


const options = {

  hostname: 'localhost',
  port: 3000,
  path: '/',
  method: 'GET'
}
    ;
    

const req = https.request(options, (res) =>
 {

  console.log(`STATUS: ${
res.statusCode}
    `);
    
  res.on('data', (chunk) =>
 {

    console.log(`BODY: ${
chunk}
    `);

  }
    );
    
  res.on('end', () =>
 {
    
    console.log('No more data in response.');

  }
    );

}
    );
    

req.on('error', (e) =>
 {

  console.error(`problem with request: ${
e.message}
    `);

}
    );
    

req.end();
    

4. 使用dgram模块进行UDP通信

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);
    

UDP客户端

const dgram = require('dgram');
    

const client = dgram.createSocket('udp4');
    

client.open(3000);
    

client.on('listening', () =>
 {
    
  const message = 'Hello, UDP Server!';
    
  client.send(message, 3000, 'localhost', (err) =>
 {
    
    if (err) throw err;
    
    console.log('Message sent!');

  }
    );

}
    );
    

client.on('message', (msg, rinfo) =>
 {

  console.log(`Server replied: ${
msg}
 from ${
rinfo.address}
:${
rinfo.port}
    `);

}
    );
    

总结

以上示例展示了如何在Linux上使用Node.js进行基本的网络编程。根据具体需求,可以选择合适的模块和方法来实现所需的功能。Node.js的网络编程能力非常强大,可以用于构建各种网络应用和服务。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Node.js在Linux上的网络编程如何实现
本文地址: https://pptw.com/jishu/781625.html
ubuntu域名能用于电商吗 Ubuntu Jenkins部署更新流程是怎样的

游客 回复需填写必要信息