網路服務通常要做兩件事情:建立連線和傳輸資訊。
涉及到的**見git位址node-js-demo
伺服器端**如下,服務端**存在server.js裡面
const fs = require('fs');
const net = require('net');
const filename = process.ar**[2];
if (!filename)
const server = net.createserver((connection) => )
connection.on('close', () => )
});server.listen(60300, () => )
服務端執行命令:
node server.js target.txt
客戶端執行命令:
telnet 127.0.0.1 60300
//客戶端命令也可以是 telnet localhost 60300
客戶端與服務端建立連線後,伺服器端監聽目標檔案內容的變化,如果檔案內容有變化,則通過connection.write 把訊息傳輸到客戶端。
nodejs在訊息通訊時,有時訊息可能會被切分成幾塊資料,該如何處理呢?
例如,當檔案內容改變時,我們要傳給客戶端乙個字串,乙個帶有type、timestamp屬性的物件和換行符。
connection.write(json.stringify() + '\n');
客戶端監聽data事件,就可以拿到伺服器端傳輸來的資料:
const client = require('net').connect();
client.on('data', data => )
可是如果伺服器端這樣拆分資料,把一條完整的訊息拆分成兩條:
const firstchunk = '\n';
客戶端這時候就會報錯了。
解決思路就是先把接收到的原始訊息存到buffer變數中,然後從前往後查詢訊息結束符,我們這裡的訊息結束符是『\n』,找到『\n』時把這條訊息取出來,解析後輸出到客戶端。
const client = require('net').connect();
var buffer = '';
client.on('data', data =>
})
網路程式設計 Socket程式設計
一 網路部分 1.ip 2.埠號 在網路協議中使用埠號識別主機上不同的程序,不同的埠對應於不同的服務 應用程式 3.協議 tcp二 socket部門socket通訊基本流程圖 根據socket通訊基本流程圖,總結通訊的基本步驟 伺服器端 第一步 建立乙個用於監聽連線的socket對像 第二步 用指定...
socket網路程式設計
首先認識乙個表示主機資訊的結構體 struct hostent h addrtype 這是表示主機所使用的位址型別的定義,在c語言winsock2.h標頭檔案中以 af 開頭的巨集定義就是它的值。如果使用的是ipv4,則值為 af inet 如果是ipv6,值為 af inet4 h length ...
Socket網路程式設計
socket 網路程式設計 在c free中建立乙個對話方塊工程,取名socket1,建立如下檔案結構 main.h ifndef main h define main h include bool winapi main proc hwnd hwnd,uint umsg,wparam wparam...