Net Module trong Node.js



net Module trong Node.js được sử dụng để tạo Server và Client. Module này cung cấp một Network Wrapper không đồng bộ và có thể được import với cú pháp:

var net = require("net")

Phương thức của net Module trong Node.js

SttPhương thức & Miêu tả
1net.createServer([options][, connectionListener])
Tạo một TCP Server mới. Tham số connectionListener tự động được thiết lập để thành một Listener cho sự kiện 'connection'.
2net.connect(options[, connectionListener])
Đây là một phương thức factory, trả về một 'net.Socket' mới và kết nối tới address và port đã cho.
3net.createConnection(options[, connectionListener])
Đây là một phương thức factory, trả về một 'net.Socket' mới và kết nối tới address và port đã cho.
4net.connect(port[, host][, connectListener])
Tạo một kết nối TCP tới port trên host đã cho. Nếu host không được cung cấp, thì giá trị mặc định là 'localhost'. Tham số connectListener sẽ được thêm vào như là Listener cho sự kiện 'connect'.
5net.createConnection(port[, host][, connectListener])
Tạo một kết nối TCP tới port trên host đã cho. Nếu host không được cung cấp, thì giá trị mặc định là 'localhost'. Tham số connectListener sẽ được thêm vào như là Listener cho sự kiện 'connect'.
6net.connect(path[, connectListener])
Tạo một kết nối Unix Socket tới đường dẫn đã cho. Tham số connectListener sẽ được thêm vào như là Listener cho sự kiện 'connect'.
7net.createConnection(path[, connectListener])
Tạo một kết nối Unix Socket tới đường dẫn đã cho. Tham số connectListener sẽ được thêm vào như là Listener cho sự kiện 'connect'.
8net.isIP(input)
Kiểm tra xem input có phải là một địa chỉ IP address không. Trả về giá trị 0 cho một chuỗi không hợp lệ, 4 cho phiên bản địa chỉ IP v4, và trả về 6 cho địa chỉ IP v6.
9net.isIPv4(input)
Trả về true nếu input là địa chỉ IP v4, nếu không là false.
10net.isIPv6(input)
Trả về true nếu input là địa chỉ IP v6, nếu không là false.
Quảng cáo

Lớp net.Server trong Node.js

Lớp net.Server được sử dung để tạo một TCP Server hoặc Local Server.

Phương thức của lớp net.Server trong Node.js

SttPhương thức & Miêu tả
1server.listen(port[, host][, backlog][, callback])
Bắt đầu chấp nhận kết nối trên port và host đã cho. Nếu không cung cấp tham số host, Server sẽ chấp nhận các kết nối trực tiếp tới bất kỳ địa chỉ IPv4 nào (INADDR_ANY). Nếu giá trị port là 0 sẽ gán một port ngẫu nhiên.
2server.listen(path[, callback])
Khởi động một Local Server để nghe các kết nối trên path đã cho.
3server.listen(handle[, callback])
Đối tượng handle có thể được thiết lập cho Server hoặc Socket. Việc này làm cho Server chấp nhận kết nối tới một handle cụ thể.
4server.listen(options[, callback])
Tham số options có thể là các thuộc tính port, host, và backlog. Tham số callback là một hàm callback tùy ý mà làm việc như khi gọi tới phương thức server.listen(port, [host], [backlog], [callback]) .
5server.close([callback])
Đóng tất cả các kết nối đã kết thúc và Server sinh một sự kiện 'close'.
6server.address()
Trả về một địa chỉ bound address và port của Server, như đã được báo cáo bởi Hệ điều hành.
7server.unref()
Việc gọi phương thức unref trên một Server sẽ cho phép chương trình thoát ra.
8server.ref()
Trái ngược với phương thức unref(), việc gọi phương thức ref() sẽ không cho phép chương trình thoát ra.
9server.getConnections(callback)
Lấy số các kết nối đồng thời trên một Server một cách không đồng bộ. Hàm callback nên nhận hai tham số err (để Resolve lỗi) và count (để đếm).

Sự kiện của lớp net.Server trong Node.js

SttSự kiện & Miêu tả
1listening
Xảy ra khi Server đã được gắn kết sau một lời gọi tới server.listen.
2connection
Xảy ra khi tạo một kết nối mới
3close
Xảy ra khi đóng Server
4error
Xảy ra khi xuất hiện bất kỳ lỗi nào. Sự kiện 'close' sẽ trực tiếp được gọi sau sự kiện này.

Lớp net.Socket trong Node.js

Đối tượng này là lớp trừu tượng của TCP hoặc Local Socket. net.Socket kế thừa duplex Stream interface. Chúng có thể được tạo bởi người dùng hoặc bởi một Client (bởi phương thức connect()) hoặc có thể được tạo bởi Node.js và được truyền tới người dùng thông qua sự kiện 'connection' của một Server.

Sự kiện của net.Socket trong Node.js

net.Socket là một eventEmitter và nó sinh các sự kiện sau.

SttSự kiện & Miêu tả
1lookup
Xảy ra sau khi đã Resolve một hostname nhưng trước khi kết nối
2connect
Xảy ra khi một kết nối Socket được thiết lập thành công
3data
Xảy ra khi dữ liệu đã được nhận. Tham số data sẽ là một Buffer hoặc String. Phần mã hóa của data được thiết lập bởi socket.setEncoding().
4error
Xảy ra khi xuất hiện bất kỳ lỗi nào. Sự kiện 'close' sẽ được gọi trực tiếp sau sự kiện này.
5close
Xảy ra khi Socket đã được đóng.
Quảng cáo

Thuộc tính của net.Socket trong Node.js

net.Socket có nhiều thuộc tính hữu ích giúp bạn điều khiển tốt hơn trong việc tương tác với Socket.

SttThuộc tính & Miêu tả
1socket.bufferSize
Thuộc tính này chỉ số lượng ký tự đã được đệm
2socket.remoteAddress
Biểu diễn chuỗi của địa chỉ Remote IP.
3socket.remoteFamily
Biểu diên chuỗi của Remote IP Family. Đó là 'IPv4' hoặc 'IPv6'.
4socket.remotePort
Biểu diễn dạng số của Remote Port. Ví dụ 80 hoặc 21.
5socket.localAddress
Biểu diễn chuỗi của địa chỉ Local IP mà một Remote Client kết nối tới. Ví dụ, nếu bạn đang lắng nghe trên '0.0.0.0' và Client kết nối trên '192.168.1.1', thì giá trị sẽ là '192.168.1.1'.
6socket.localPort
Biểu diễn dạng số của Local Port. Ví dụ 80 hoặc 21.
7socket.bytesRead
Số lượng byte đã nhận được.
8socket.bytesWritten
Số lượng byte đã được gửi.

Phương thức của net.Socket trong Node.js

SttPhương thức & Miêu tả
1new net.Socket([options])
Xây dựng một đối tượng Socket mới.
2socket.connect(port[, host][, connectListener])
Mở kết nối cho một Socket đã cho. Nếu bạn cung cấp hai tham số port và host, thì khi đó Socket sẽ được mở dưới dạng như là một TCP Socket. Nếu bạn không cung cấp host, thì giá trị mặc định là localhost. Nếu bạn cung cấp tham số path, thì Socket sẽ đươc mở dưới dạng như một Unix Socket tới đường dẫn path đó.
3socket.connect(path[, connectListener])
Mở kết nối cho một Socket đã cho. Nếu bạn cung cấp hai tham số port và host, thì khi đó Socket sẽ được mở dưới dạng như là một TCP Socket. Nếu bạn không cung cấp host, thì giá trị mặc định là localhost. Nếu bạn cung cấp tham số path, thì Socket sẽ đươc mở dưới dạng như một Unix Socket tới đường dẫn path đó.
4socket.setEncoding([encoding])
Thiết lập mã hóa encoding cho Socket dưới dạng như một Readable Stream.
5socket.write(data[, encoding][, callback])
Gửi dữ liệu trên Socket. Tham số thứ hai xác định mã hóa trong trường hợp dữ liệu dạng chuỗi. Mã hóa mặc định là UTF8.
6socket.destroy()
Bảo đảm rằng không có bất kỳ hoạt động I/O xảy ra trên Socket này. Phương thức này chỉ cần thiết khi xuất hiện lỗi.
7socket.pause()
Tạm dừng việc đọc dữ liệu. Do đó sự kiện 'data' không được sinh
8socket.resume()
Tiếp tục việc đọc dữ liệu sau khi đã tạm dừng với phương thức pause().

Ví dụ

Dưới đây là ví dụ minh họa một số phương thức và thuộc tính của net Module trong Node.js.

Tạo server.js có nội dung:

var net = require('net');
var server = net.createServer(function(connection) { 
   console.log('Ket noi voi Client');
   connection.on('end', function() {
      console.log('Mat ket noi voi Client');
   });
   connection.write('Hello World!\r\n');
   connection.pipe(connection);
});
server.listen(8080, function() { 
  console.log('Server dang lang nghe');
});

Chạy server.js để xem kết quả:

$ node server.js

Kiểm tra kết quả.

Server dang lang nghe

Tiếp đó, bạn tạo client.js như dưới đây

var net = require('net');
var client = net.connect({port: 8080}, function() {
   console.log('Da ket noi voi Server!');  
});
client.on('data', function(data) {
   console.log(data.toString());
   client.end();
});
client.on('end', function() { 
   console.log('Mat ket noi voi Server');
});

Chạy client.js trên một màn hình terminal khác để xem kết quả:

$ node client.js

Kiểm tra kết quả.

Da ket noi voi Server!
Hello World!

Mat ket noi voi Server

Kiểm tra kết quả trên màn hình Terminal đang chạy server.js:

Server dang lang nghe
Ket noi voi Client
Mat ket noi voi Client

Đã có app VietJack trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng....miễn phí. Tải ngay ứng dụng trên Android và iOS.

Theo dõi chúng tôi miễn phí trên mạng xã hội facebook và youtube:

Follow fanpage của team https://www.facebook.com/vietjackteam/ hoặc facebook cá nhân Nguyễn Thanh Tuyền https://www.facebook.com/tuyen.vietjack để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile.... mới nhất của chúng tôi.

Các bài học NodeJS phổ biến khác tại VietJack:


utility_module_trong_nodejs.jsp


Tài liệu giáo viên