3 tcp server
4 結語
5 參考文章
常聽到網路程式設計,自己也有些模糊的概念,或許在**都用到過,只是不知道那是網路程式設計而已,今天花時間來好好理解一下,謹作為筆記行和分享,如果這裡有什麼需要補充或者不對的地方,歡迎道友指正
網路程式設計從大的方面說就是對資訊的傳送到接收,中間傳輸為物理線路的作用大概講的是將一端的資料打包傳送給另一端並由另一端解析網路程式設計最主要的工作就是在傳送端把資訊通過規定好的協議進行組裝包,在接收端按照規定好的協議把包進行解析,從而提取出對應的資訊,達到通訊的目的。中間最主要的就是資料報的組裝,資料報的過濾,資料報的捕獲,資料報的分析,當然最後再做一些處理,**、開發工具、資料庫、伺服器架設和網頁設計這5部分你都要接觸。
再看看另一篇文章,廖雪峰老師對網路程式設計的理解
以上這個例子應該說的很清楚了,就是兩個程序的通訊,我把我的資料給你,你解析了再發給我
前面搞懂了什麼是網路程式設計,既然是兩個程序間的通訊,那麼肯定有兩個程序,要建立兩個程序間的連線,兩個程序間要通過這個連線相互傳送資料進行通訊
node
中提供了net
模組,用於tcp
網路程式設計
想一想,通訊需要滿足什麼?像打**,兩邊都有人,我說一句話,你再根據我說的話接下一句話,那麼這個過程需要什麼呢?兩台**,**線,說話的內容,還要經常聽聽說到哪了,打完**要掛**等等,這麼一想對比官網中的例子也就好理解多了
下面是乙個客戶端與服務端通訊的例子
關於客戶端和服務端通訊的詳細流程可以參考**http:從輸入**到呈現看看服務端做了什麼?
建立乙個**(tcp server)
打**(啟動服務)
聽聽說到哪了和說的什麼內容(監聽客戶端動作與資料)
回話(將資料傳送給客戶端)
// server.js
var net =
require
('net'
)// 1. 建立 tcp server
var server = net.
createserver
(function
(socket));
// 4. 監聽客戶端斷開連線事件
socket.on(
'end'
,function
(data));
// 5. 傳送資料給客戶端
socket.
write
('hello\r\n');
})// 2. 啟動服務
server.
listen
(8080
,function()
)
再來看看客戶端做了什麼?
接通**(連線伺服器)
接聽並分析**傳過來的內容(接收伺服器資料)
選擇回話或者結束通話**(傳送請求或者斷開連線)
斷開**(斷開連線)
// client.js
var net =
require
('net'
)// 1. 連線伺服器
var client = net.
connect(,
function()
)// 2. 接收服務端的資料並分析
client.on(
'data'
,function
(data)
)// 4. 斷開連線
client.on(
'end'
,function()
)
關於網路程式設計,還有太多太多內容,需要持續學習
nodejs中的網路程式設計
node提供了net dgram http https這4個模組,分別用於處理tcp udp http https,適用於伺服器端和客戶端。tcp服務在網路應用中十分常見,目前大多數的應用都是基於tcp搭建而成的 tcp全名為傳輸控制協議,在osi模型 由七層組成,分別為物理層 資料鏈結層 網路層 ...
NodeJS 五 udp網路程式設計
var dgram require dgram var serverudp dgram.createsocket udp4 serverudp.on message function msg,rinfo serverudp.on listening function serverudp.bind 1...
nodeJS中的非同步程式設計
nodejs 不是單執行緒 在部落格專案中關於非同步問題 1.當使用者新增一條部落格時 需要通過post方式向伺服器傳送資料 後台獲取使用者以post方式拿到傳送過來的資料 然後存入資料庫 上面的 建立乙個空字串 當使用者向伺服器傳送請求時出發data事件將依次獲取來資料進行拼接 當使用者請求結束後...