Net簡單應用-服務器和客戶端之間簡單通訊

Scoket編程

建立服務器

  • 建立sever.js
  • 引用net工具包
  • 使用net.createSever()建立一個TCP服務器,並使用net.listen()監聽指定端口
var net = require('net');

// 建立一個TCP服務器,function(connection){}是給connection事件建立的監聽器,當有接收到請求的時候觸發
var server = net.createServer(function (connection) {
    console.log('client connected');

    // 當 socket 另外一端發送 FIN 包時,觸發該事件。
    connection.on('end', function () {
        console.log('客戶端關閉連接');
    });

    // 寫入數據,默認是uft8編碼
    connection.write('Hello World!\r\n');

    // pipe()是管道流方法,把connection加到connection中
    connection.pipe(connection);
});

// 監聽8080端口,客戶端端口須要與其一致
server.listen('8080', function () {
    console.log('server is listening');
});

建立客戶端

  • 新建 client.js
  • 引入net工具包
  • 使用net.connect()建立一個新的net.Socket對象並鏈接到指定端口(跟服務器端口一致)
  • 對data、end事件進行監聽
var net = require('net');

// 返回一個新的net.Socket,並連接到指定的端口,這裏是8080,端口須要與服務器保持一致
// 當socket創建的時候,將會觸發‘connect’事件
var client = net.connect(
    {port: 8080},
    function () {
        console.log('連接到服務器');
    }
);

// data爲net.Socket對象的事件,當接收到數據時觸發
client.on('data', function (data) {
    console.log(data.toString());

    // 半關閉 socket。例如,它發送一個 FIN 包。可能服務器仍在發送數據。
    client.end();
});

// 當 socket 另外一端發送 FIN 包時,觸發該事件。
client.on('end', function () {
    console.log('斷開與服務器的連接');
});

運行: 打開兩個窗口,先在其中一個端口啓動服務器 node server.jsnode

在另外一個窗口運行客戶端 node client.js編程

問題

怎麼實如今這兩個窗口進行聊天呢?服務器

相關文章
相關標籤/搜索