nodejs socket服務(wù)端和客戶端簡(jiǎn)單通信功能
本文實(shí)例講述了通過node.js的net模塊實(shí)現(xiàn)nodejs socket服務(wù)端和客戶端簡(jiǎn)單通信功能,可以用作客戶端對(duì)服務(wù)端的端口監(jiān)聽以及事件回執(zhí)。
server端代碼
var net = require('net'); //模塊引入 var listenPort = 8080;//監(jiān)聽端口 var server = net.createServer(function(socket){ // 創(chuàng)建socket服務(wù)端 console.log('connect: ' + socket.remoteAddress + ':' + socket.remotePort); socket.setEncoding('binary'); //接收到數(shù)據(jù) socket.on('data',function(data){ console.log('client send:' + data); }); socket.write('Hello client!\r\n'); // socket.pipe(socket); //數(shù)據(jù)錯(cuò)誤事件 socket.on('error',function(exception){ console.log('socket error:' + exception); socket.end(); }); //客戶端關(guān)閉事件 socket.on('close',function(data){ console.log('client closed!'); // socket.remoteAddress + ' ' + socket.remotePort); }); }).listen(listenPort); //服務(wù)器監(jiān)聽事件 server.on('listening',function(){ console.log("server listening:" + server.address().port); }); //服務(wù)器錯(cuò)誤事件 server.on("error",function(exception){ console.log("server error:" + exception); });
client端代碼
var net = require('net'); var port = 8080; var host = '127.0.0.1'; var client= new net.Socket(); //創(chuàng)建socket客戶端 client.setEncoding('binary'); //連接到服務(wù)端 client.connect(port,host,function(){ client.write('hello server'); //向端口寫入數(shù)據(jù)到達(dá)服務(wù)端 }); client.on('data',function(data){ console.log('from server:'+ data); //得到服務(wù)端返回來的數(shù)據(jù) }); client.on('error',function(error){ //錯(cuò)誤出現(xiàn)之后關(guān)閉連接 console.log('error:'+error); client.destory(); }); client.on('close',function(){ //正常關(guān)閉連接 console.log('Connection closed'); });
運(yùn)行結(jié)果如下
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Node.js 使用流實(shí)現(xiàn)讀寫同步邊讀邊寫功能
本文通過代碼給大家介紹了Node.js 使用流實(shí)現(xiàn)讀寫同步邊讀邊寫功能,非常不錯(cuò),具有參考借鑒價(jià)值,需要的額朋友參考下吧2017-09-09Nodejs 中的 Buffer 類的創(chuàng)建與基本使用
這篇文章主要為大家介紹了Nodejs中Buffer的使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10node.js中的fs.realpathSync方法使用說明
這篇文章主要介紹了node.js中的fs.realpathSync方法使用說明,本文介紹了fs.realpathSync的方法說明、語法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下2014-12-12nodeJS?express路由學(xué)習(xí)req.body與req.query方法實(shí)例詳解
這篇文章主要為大家介紹了nodeJS?express路由學(xué)習(xí)req.body與req.query方法實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09nodejs通過phantomjs實(shí)現(xiàn)下載網(wǎng)頁
這篇文章主要介紹了nodejs通過phantomjs實(shí)現(xiàn)下載網(wǎng)頁的方法,有需要的小伙伴可以參考下。2015-05-05node連接MySQL數(shù)據(jù)庫的3種方式總結(jié)
現(xiàn)在前端基本上都會(huì)用一些NodeJs,想必也想自己寫一些API或者個(gè)人博客的后臺(tái)系統(tǒng),這些就離不開連接數(shù)據(jù)庫的問題,下面這篇文章主要給大家介紹了關(guān)于node連接MySQL數(shù)據(jù)庫的3種方式,需要的朋友可以參考下2022-08-08node.js的exports、module.exports與ES6的export、export default深入詳解
這篇文章主要給大家介紹了關(guān)于node.js中的exports、module.exports與ES6中的export、export default到時(shí)是什么的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-10-10kafka調(diào)試中遇到Connection to node -1 could not be established. Br
這篇文章主要介紹了kafka調(diào)試中遇到Connection to node -1 could not be established. Broker may not be available的解決方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-09-09NodeJS簡(jiǎn)單實(shí)現(xiàn)WebSocket功能示例
這篇文章主要介紹了NodeJS簡(jiǎn)單實(shí)現(xiàn)WebSocket功能,結(jié)合具體實(shí)例形式分析了nodejs實(shí)現(xiàn)WebSocket通信功能的客戶端與服務(wù)器端相關(guān)操作技巧,需要的朋友可以參考下2018-02-02