nodejs socket服務(wù)端和客戶(hù)端簡(jiǎn)單通信功能
本文實(shí)例講述了通過(guò)node.js的net模塊實(shí)現(xiàn)nodejs socket服務(wù)端和客戶(hù)端簡(jiǎn)單通信功能,可以用作客戶(hù)端對(duì)服務(wù)端的端口監(jiān)聽(tīng)以及事件回執(zhí)。
server端代碼
var net = require('net'); //模塊引入 var listenPort = 8080;//監(jiān)聽(tīng)端口 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(); }); //客戶(hù)端關(guān)閉事件 socket.on('close',function(data){ console.log('client closed!'); // socket.remoteAddress + ' ' + socket.remotePort); }); }).listen(listenPort); //服務(wù)器監(jiān)聽(tīng)事件 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客戶(hù)端 client.setEncoding('binary'); //連接到服務(wù)端 client.connect(port,host,function(){ client.write('hello server'); //向端口寫(xiě)入數(shù)據(jù)到達(dá)服務(wù)端 }); client.on('data',function(data){ console.log('from server:'+ data); //得到服務(wù)端返回來(lái)的數(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)讀寫(xiě)同步邊讀邊寫(xiě)功能
本文通過(guò)代碼給大家介紹了Node.js 使用流實(shí)現(xiàn)讀寫(xiě)同步邊讀邊寫(xiě)功能,非常不錯(cuò),具有參考借鑒價(jià)值,需要的額朋友參考下吧2017-09-09Nodejs 中的 Buffer 類(lèi)的創(chuàng)建與基本使用
這篇文章主要為大家介紹了Nodejs中Buffer的使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10node.js中的fs.realpathSync方法使用說(shuō)明
這篇文章主要介紹了node.js中的fs.realpathSync方法使用說(shuō)明,本文介紹了fs.realpathSync的方法說(shuō)明、語(yǔ)法、接收參數(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通過(guò)phantomjs實(shí)現(xiàn)下載網(wǎng)頁(yè)
這篇文章主要介紹了nodejs通過(guò)phantomjs實(shí)現(xiàn)下載網(wǎng)頁(yè)的方法,有需要的小伙伴可以參考下。2015-05-05node連接MySQL數(shù)據(jù)庫(kù)的3種方式總結(jié)
現(xiàn)在前端基本上都會(huì)用一些NodeJs,想必也想自己寫(xiě)一些API或者個(gè)人博客的后臺(tái)系統(tǒng),這些就離不開(kāi)連接數(shù)據(jù)庫(kù)的問(wèn)題,下面這篇文章主要給大家介紹了關(guān)于node連接MySQL數(shù)據(jù)庫(kù)的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)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(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的解決方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-09-09NodeJS簡(jiǎn)單實(shí)現(xiàn)WebSocket功能示例
這篇文章主要介紹了NodeJS簡(jiǎn)單實(shí)現(xiàn)WebSocket功能,結(jié)合具體實(shí)例形式分析了nodejs實(shí)現(xiàn)WebSocket通信功能的客戶(hù)端與服務(wù)器端相關(guān)操作技巧,需要的朋友可以參考下2018-02-02