Rate this post

Node.js Net cung cấp khả năng thực hiện lập trình socket. Chúng tôi có thể tạo ứng dụng trò chuyện hoặc giao tiếp ứng dụng máy khách và máy chủ bằng cách sử dụng lập trình socket trong Node.js. Mô-đun net Node.js chứa các chức năng để tạo cả máy chủ và máy khách.

Các bài viết liên quan:

Tổng quan về module Net trong Node.js

Module net trong Node.js là một module tích hợp sẵn cung cấp các công cụ để xây dựng ứng dụng mạng, bao gồm cả máy chủ và khách hàng. Module này cung cấp các lớp và phương thức cho việc tạo và quản lý các kết nối mạng TCP hoặc UDP.

Xem thêm Module web trong Node.js

Module net cho phép bạn tạo máy chủ TCP hoặc UDP, kết nối đến máy chủ từ một khách hàng và gửi/nhận dữ liệu qua các kết nối đã thiết lập. Bằng cách sử dụng net, bạn có thể xây dựng các ứng dụng mạng đa nền tảng, như máy chủ web, ứng dụng chat, trò chơi trực tuyến và nhiều ứng dụng mạng khác.

Các tính năng chính của module net bao gồm:

  1. Tạo máy chủ TCP và UDP: Bạn có thể sử dụng net.createServer() để tạo máy chủ TCP hoặc UDP và lắng nghe các kết nối hoặc gói tin từ khách hàng.
  2. Tạo kết nối TCP và UDP: Bằng cách sử dụng net.createConnection() hoặc net.connect(), bạn có thể tạo kết nối TCP hoặc UDP tới máy chủ từ phía khách hàng.
  3. Xử lý sự kiện kết nối và gửi/nhận dữ liệu: Module net cho phép bạn xử lý các sự kiện như ‘connection’, ‘data’, ‘end’, ‘error’, ‘close’ để quản lý các kết nối và truyền nhận dữ liệu qua các kết nối mạng.
  4. Thiết lập và kiểm tra các thuộc tính của kết nối: Bạn có thể sử dụng các phương thức như socket.setEncoding(), socket.setTimeout(), socket.setKeepAlive() để thiết lập các thuộc tính của kết nối và kiểm tra trạng thái của kết nối.

Module net là một phần quan trọng của Node.js khi bạn cần xây dựng các ứng dụng mạng. Nó cung cấp các công cụ mạnh mẽ để tạo và quản lý kết nối mạng TCP hoặc UDP.

Xem thêm Node.js Package Manager

Tạo máy chủ TCP sử dụng module Net

Để tạo máy chủ TCP sử dụng module net trong Node.js, bạn có thể sử dụng phương thức net.createServer() để tạo một đối tượng máy chủ và lắng nghe các kết nối từ khách hàng. Dưới đây là một ví dụ minh họa:

const net = require('net');

// Tạo máy chủ TCP
const server = net.createServer((socket) => {
  // Xử lý sự kiện khi có kết nối từ khách hàng
  console.log('Client connected.');

  // Gửi dữ liệu tới khách hàng
  socket.write('Hello from server!\r\n');

  // Xử lý sự kiện nhận dữ liệu từ khách hàng
  socket.on('data', (data) => {
    console.log(`Received data from client: ${data}`);
  });

  // Xử lý sự kiện khi kết nối bị đóng
  socket.on('end', () => {
    console.log('Client disconnected.');
  });
});

// Lắng nghe các kết nối tới cổng 3000
const PORT = 3000;
server.listen(PORT, () => {
  console.log(`Server listening on port ${PORT}`);
});

Trong ví dụ trên, chúng ta tạo một máy chủ TCP bằng cách gọi net.createServer() và truyền một hàm xử lý vào trong đó. Trong hàm xử lý, chúng ta có thể xử lý các sự kiện như ‘connection’, ‘data’, ‘end’ để gửi và nhận dữ liệu từ khách hàng. Máy chủ sẽ lắng nghe các kết nối tới cổng 3000 bằng cách gọi server.listen().

Xem thêm Hướng dẫn cài đặt Nodejs

Tạo máy chủ UDP sử dụng module Net

Để tạo máy chủ UDP sử dụng module net trong Node.js, bạn có thể sử dụng phương thức net.createSocket() để tạo một đối tượng socket UDP và lắng nghe các gói tin từ khách hàng. Dưới đây là một ví dụ minh họa:

const dgram = require('dgram');

// Tạo máy chủ UDP
const server = dgram.createSocket('udp4');

// Xử lý sự kiện khi nhận được gói tin từ khách hàng
server.on('message', (msg, rinfo) => {
  console.log(`Received message: ${msg} from ${rinfo.address}:${rinfo.port}`);

  // Gửi gói tin trả lại khách hàng
  const response = 'Hello from server!';
  server.send(response, 0, response.length, rinfo.port, rinfo.address);
});

// Xử lý sự kiện khi máy chủ sẵn sàng
server.on('listening', () => {
  const address = server.address();
  console.log(`Server listening on ${address.address}:${address.port}`);
});

// Lắng nghe các gói tin tới cổng 3000
const PORT = 3000;
server.bind(PORT);

Trong ví dụ trên, chúng ta tạo một máy chủ UDP bằng cách gọi dgram.createSocket() và truyền loại socket UDP (trong trường hợp này là ‘udp4’) vào trong đó. Chúng ta xử lý sự kiện ‘message’ để nhận và xử lý các gói tin từ khách hàng. Sau đó, chúng ta gửi một gói tin trả lại khách hàng bằng cách gọi server.send(). Máy chủ sẽ lắng nghe các gói tin tới cổng 3000 bằng cách gọi server.bind().

Xem thêm Tổng quan về Model TCP/IP

Ví dụ Node.js Net

Trong ví dụ này, chúng tôi đang sử dụng hai lời nhắc lệnh:

  • Dấu nhắc lệnh Node.js cho máy chủ.
  • Dấu nhắc lệnh mặc định của Window dành cho máy khách.

server:

File: net_socket_server.js

const net = require('net');  
 	var server = net.createServer((socket) => {  
  	  socket.end('goodbye ! see you again \n');  
 	}).on('error', (err) => {  
 	  // handle errors here  
 	  throw err;  
 	});  
 	// grab a random port.  
 	server.listen(() => {  
   address = server.address();  
  console.log('opened server on port: %j', address);  
 });  

Mở dấu nhắc lệnh Node.js và chạy đoạn mã sau:

node net_socket_server.js 

client:

File: net_client.js

const net = require('net');  
	const client = net.connect({port: 50302}, () => {//use same port of server  
 	  console.log('connected to server!');  
 	  client.write('hello server!\r\n');  
  	});  
 	client.on('data', (data) => {  
  	  console.log(data.toString());  
 	  client.end();  
 	});  
 client.on('end', () => {  
   console.log('disconnected from server');  
 });  

Open Node.js command prompt and run the following code:

node net_client.js  

Kết luận về node.js Net

Module Net trong Node.js là một công cụ mạnh mẽ để xây dựng các ứng dụng mạng dựa trên giao thức TCP và UDP. Dưới đây là một số điểm kết luận quan trọng về module Net:

  • Module Net cung cấp các lớp và phương thức để tạo máy chủ và khách hàng mạng.
  • Bằng cách sử dụng Net, bạn có thể tạo các ứng dụng mạng như máy chủ TCP, máy chủ UDP, khách hàng TCP và khách hàng UDP.
  • Bạn có thể xử lý các sự kiện như ‘connection’, ‘message’ và ‘listening’ để xử lý kết nối, dữ liệu nhận được và sự kiện máy chủ sẵn sàng.
  • Module Net hỗ trợ việc xử lý dữ liệu đồng bộ và không đồng bộ, cho phép bạn gửi và nhận dữ liệu qua mạng.
  • Nó cung cấp các phương thức như net.createServer()net.createConnection() để tạo máy chủ và kết nối tới máy chủ.
  • Net cũng hỗ trợ mã hóa SSL/TLS để bảo mật giao tiếp mạng.

Với module Net, bạn có thể xây dựng các ứng dụng mạng phức tạp và tùy chỉnh trong Node.js, cho phép giao tiếp và truyền thông dữ liệu qua mạng dễ dàng.

Xem thêm array_diff trong php là gì ?

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now