nodejs socket服務(wù)端和客戶端簡單通信功能
本文實(shí)例講述了通過node.js的net模塊實(shí)現(xiàn)nodejs socket服務(wù)端和客戶端簡單通信功能,可以用作客戶端對服務(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ù)錯誤事件
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ù)器錯誤事件
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){
//錯誤出現(xiàn)之后關(guān)閉連接
console.log('error:'+error);
client.destory();
});
client.on('close',function(){
//正常關(guān)閉連接
console.log('Connection closed');
});
運(yùn)行結(jié)果如下

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
nodejs利用ajax實(shí)現(xiàn)網(wǎng)頁無刷新上傳圖片實(shí)例代碼
本篇文章主要介紹了nodejs利用ajax實(shí)現(xiàn)網(wǎng)頁無刷新上傳圖片實(shí)例代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-06-06
Nodejs實(shí)現(xiàn)爬蟲抓取數(shù)據(jù)實(shí)例解析
這篇文章主要介紹了Nodejs實(shí)現(xiàn)爬蟲抓取數(shù)據(jù)實(shí)例解析,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友參考下吧2018-07-07
Node.js從字符串生成文件流的實(shí)現(xiàn)方法
這篇文章主要介紹了Node.js從字符串生成文件流的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
淺析Node.js實(shí)現(xiàn)HTTP文件下載
本文介紹如何用Node.js來實(shí)現(xiàn)HTTP文件下載,文章以實(shí)例演示所以很詳細(xì),有需要的小伙伴們可以參考學(xué)習(xí)。2016-08-08
node.js中實(shí)現(xiàn)token的生成與驗(yàn)證的操作方法
Token是一種用于在客戶端和服務(wù)器之間安全傳輸信息的加密字符串,常用于身份驗(yàn)證、授權(quán)、狀態(tài)管理和安全性,在Node.js中,常用jsonwebtoken庫生成和驗(yàn)證Token,本文介紹node.js中實(shí)現(xiàn)token的生成與驗(yàn)證的操作方法,感興趣的朋友一起看看吧2025-01-01
nodejs環(huán)境快速操作mysql數(shù)據(jù)庫的方法詳解
這篇文章主要介紹了nodejs環(huán)境快速操作mysql數(shù)據(jù)庫的方法詳解,需要的朋友可以參考下2021-03-03

