Socket網路程式設計

2021-09-11 04:13:40 字數 1270 閱讀 6552

網路服務通常要做兩件事情:建立連線和傳輸資訊。

涉及到的**見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...