本文實例講述了通過node.js的net模塊實現nodejs socket服務端和客戶端簡單通信功能,可以用作客戶端對服務端的端口監聽以及事件回執。
server端代碼
var net = require('net'); //模塊引入 var listenPort = 8080;//監聽端口 var server = net.createServer(function(socket){ // 創建socket服務端 console.log('connect: ' + socket.remoteAddress + ':' + socket.remotePort); socket.setEncoding('binary'); //接收到數據 socket.on('data',function(data){ console.log('client send:' + data); }); socket.write('Hello client!\r\n'); // socket.pipe(socket); //數據錯誤事件 socket.on('error',function(exception){ console.log('socket error:' + exception); socket.end(); }); //客戶端關閉事件 socket.on('close',function(data){ console.log('client closed!'); // socket.remoteAddress + ' ' + socket.remotePort); }); }).listen(listenPort); //服務器監聽事件 server.on('listening',function(){ console.log("server listening:" + server.address().port); }); //服務器錯誤事件 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(); //創建socket客戶端 client.setEncoding('binary'); //連接到服務端 client.connect(port,host,function(){ client.write('hello server'); //向端口寫入數據到達服務端 }); client.on('data',function(data){ console.log('from server:'+ data); //得到服務端返回來的數據 }); client.on('error',function(error){ //錯誤出現之后關閉連接 console.log('error:'+error); client.destory(); }); client.on('close',function(){ //正常關閉連接 console.log('Connection closed'); });
運行結果如下
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com