Node.js中使用TCP套接字編程


想知道如何在NodeJS中使用socket編程?在NodeJS中有三種socket:1. TCP,2. UDP,3. Unix域套接字,本文主要介紹NodeJS中TCP的基本編程知識。

你可以創建兩種類型的TCP套接字:1. 服務端,2. 客戶端。服務端TCP監聽來自客戶端的連接請求,並使用TCP連接向客戶端發送數據;客戶端TCP連接到服務端並與服務器交互數據。客戶端與服務端之間依靠套接字進行雙向通信。

在NodeJS中使用TCP需要引用net模塊。net模塊是NodeJS中異步網絡編程的封裝,可以做很多事情,本文僅關注於如何使用該模塊創建服務端與客戶端的TCP套接字。

創建TCP服務端

var net = require('net');

var HOST = '127.0.0.1';
var PORT = 6969;

// 創建一個TCP服務器實例,調用listen函數開始監聽指定端口
// 傳入net.createServer()的回調函數將作為”connection“事件的處理函數
// 在每一個“connection”事件中,該回調函數接收到的socket對象是唯一的
net.createServer(function(sock) {

    // 我們獲得一個連接 - 該連接自動關聯一個socket對象
    console.log('CONNECTED: ' +
        sock.remoteAddress + ':' + sock.remotePort);

    // 為這個socket實例添加一個"data"事件處理函數
    sock.on('data', function(data) {
        console.log('DATA ' + sock.remoteAddress + ': ' + data);
        // 回發該數據,客戶端將收到來自服務端的數據
        sock.write('You said "' + data + '"');
    });

    // 為這個socket實例添加一個"close"事件處理函數
    sock.on('close', function(data) {
        console.log('CLOSED: ' +
            sock.remoteAddress + ' ' + sock.remotePort);
    });

}).listen(PORT, HOST);

console.log('Server listening on ' + HOST +':'+ PORT);

創建TCP客戶端

var net = require('net');

var HOST = '127.0.0.1';
var PORT = 6969;

var client = new net.Socket();
client.connect(PORT, HOST, function() {

    console.log('CONNECTED TO: ' + HOST + ':' + PORT);
    // 建立連接后立即向服務器發送數據,服務器將收到這些數據 
    client.write('I am Chuck Norris!');

});

// 為客戶端添加“data”事件處理函數
// data是服務器發回的數據
client.on('data', function(data) {

    console.log('DATA: ' + data);
    // 完全關閉連接
    client.destroy();

});

// 為客戶端添加“close”事件處理函數
client.on('close', function() {
    console.log('Connection closed');
});

貼出一篇好文章:https://www.cnblogs.com/lyy-2016/p/6747616.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM