nodejs的socket网络编程
生活随笔
收集整理的這篇文章主要介紹了
nodejs的socket网络编程
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
簡單介紹使用nodejs的net模塊進(jìn)行socket網(wǎng)絡(luò)編程,不涉及深入的自定義應(yīng)用層協(xié)議知識,僅僅進(jìn)行了文本的傳輸,沒有設(shè)計數(shù)據(jù)的結(jié)構(gòu),數(shù)據(jù)的結(jié)束位置等。
socket默認(rèn)使用傳輸層的TCP可靠送達(dá)協(xié)議,默認(rèn)是長連接。
server端:
const net = require("net"); const HOST = "127.0.0.1"; const PORT = 6868;const server = net.createServer(); server.listen(PORT, HOST);// 重要:雙方建立鏈接時,會自動獲得一個socket對象(std,socket描述符) server.on("connection", (socket) => {// 遠(yuǎn)程客戶端地址console.log(`connected:${socket.remoteAddress}:${socket.remotePort}`);// 本地服務(wù)端地址console.log(`local:${socket.localAddress}:${socket.localPort}`);// 向客戶端發(fā)送數(shù)據(jù)socket.write("服:你好客戶端");// 收到客戶端數(shù)據(jù)時socket.on("data", (data) => {console.log(`${data}`);});// 客戶端主動斷連,觸發(fā)end事件socket.on("end", (data) => {console.log(`客戶端${socket.remoteAddress}:${socket.remotePort}已斷連`);});// 如果鏈接斷開,write方法就無效了setInterval(() => {socket.write(`服:定時消息${Date.now()}`);}, 1000); });console.log(`server listen on ${HOST}:${PORT}`);client端:
const net = require("net"); const HOST = "127.0.0.1"; const PORT = 6868;const client = new net.Socket();client.connect(PORT, HOST, () => {console.log(`connected to:${HOST}:${PORT}`);// 向服務(wù)端發(fā)送數(shù)據(jù)client.write("客:你好服務(wù)端");// 收到服務(wù)端數(shù)據(jù)時client.on("data", (data) => {console.log(data.toString());client.write("客:已收到");// client.end(); // 主動關(guān)閉此次tcp長連接});// 客戶端主動斷連,觸發(fā)自己的end事件client.on("end", () => {console.log("鏈接已主動斷開");}); });總結(jié)
以上是生活随笔為你收集整理的nodejs的socket网络编程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java GUI怎么输入_在Swing中
- 下一篇: java 整数溢出检测,Java如何处理