當前位置:
首頁 > 最新 > Node創建TCP服務端和客戶端的方法

Node創建TCP服務端和客戶端的方法

Node擁有簡單的API來創建TCP鏈接和服務。在net模塊中能找到大部分底層的類和方法。在下一個技巧,你將會學習如何創建一個TCP服務,跟蹤與它連接的客戶端。很酷的是更高層的協議,比如http,是基於TCP API的,因此一旦你投入TCP客戶端和服務端的懷抱,你就能夠真正地開始開發一些更多的特性。net模塊構成了Node網路特性的基礎。這節展示了如何創建TCP服務。你想要啟動自己的TCP服務,綁定一個埠,通過網路發送數據。使用net.createServer創建一個服務,然後調用server.listen綁定到一個埠。連接服務端,或者用命令行工具telnet或者創建一個進程內的客戶端連接副本,net.connect。net.createServer方法返回一個對象,能夠用來監聽一個指定的TCP埠應對連接。當一個客戶端創建了一個新連接,傳遞給net.createServer的回調函數將會執行。回調接受一個面向事件的連接對象。這個服務對象是net.Server的一個實例,僅僅是對net.Socket類的一個封裝。有趣的是需要注意net.Socket是使用一個雙工流來實現的——了解更多流。在進入更多原理之前,我們來看一個你能夠運行telnet連接的例子。下面展示了一個簡單的TCP服務端,接收連接並且返回數據給客戶端。

載入網路模塊。創建ID來引用連接的每一個客戶端。當客戶端連接時,ID自增,並且存放在當前局部作用域下。綁定end事件來追蹤客戶端斷開連接。使用客戶端的ID給每個客戶端打個招呼。使用管道把客戶端的數據返回給客戶端。綁定到8000埠開始接收新鏈接。我們嘗試這個例子,運行node server.js來啟動服務,然後運行telnet localhost 8000來連接。你能夠鏈接數次來查看ID自增。如果你斷開連接,含有正確客戶端ID的消息將會被列印。

很多使用TCP客戶端和服務端的程序載入net模塊。一旦它被載入,TCP服務端能夠使用net.createServer創建,這實際上只是new net.Server和一個事件偵聽器listener的快捷方式。一個服務被實例化之後,它就能夠通過server.listen監聽連接埠。回顯客戶端的數據,可以使用管道。在本例中,我們使用數字ID來跟蹤每個客戶端。連接的客戶端的總量是通過創建名為clientId的連接回調的變數存儲在回調的作用域里。每當客戶端連接或斷開這個值被顯示。傳遞到伺服器的回調客戶端參數實際上是一個Socket——你可以使用client.write寫入,而且數據將通過網路發送。 需要注意的重要一點是,添加到socket的任何事件監聽器回調將共享相同的作用域——它會創建回調內的作用域。這意味著客戶端ID對於每個連接是唯一的,你還可以存儲,客戶端可能需要其他值。這形成了Node客戶端-伺服器應用程序使用的通用模式。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 行家匯 的精彩文章:

定義模版消息發送方法類庫的編寫及POST數據發送
Node如何讀取配置文件
Node中POSIX文件系統包裝器
Node可寫的流可用於輸出數據到底層
JSON行解析器和使用objectMode配置的流用法

TAG:行家匯 |

您可能感興趣

Thrift RPC實戰 Spring集成Thrift,實現服務端和客戶端代理
Thrift服務端的5種工作模式
Oracle10g客戶端鏈接服務端配置
WannaMine新動向:對Weblogic服務端發起大規模攻擊
圖說Netty服務端啟動過程
react服務端渲染框架next.js踩坑筆記
客戶端、服務端、前台、前端、後端、後台、區別在哪?
54互娛急聘鬼才:服務端/客戶端/3D美術/主美/數值策劃等
鄒平網通傳奇服務端
智能音箱硬體和軟體介紹[下] 軟體平台和服務端 [農步祥]
分享:服務端開發學習路線圖
單點登錄介紹和服務端實現