nodejs socket服务端和客户端简单通信功能


Posted in NodeJs onSeptember 14, 2017

本文实例讲述了通过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');
});

运行结果如下

nodejs socket服务端和客户端简单通信功能

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

NodeJs 相关文章推荐
NodeJS中Buffer模块详解
Jan 07 NodeJs
nodejs基础应用
Feb 03 NodeJs
详谈Angular路由与Nodejs路由的区别
Mar 05 NodeJs
NodeJs安装npm包一直失败的解决方法
Apr 28 NodeJs
深入浅析Nodejs的Http模块
Jun 20 NodeJs
nodejs实现简单的gulp打包
Dec 21 NodeJs
nodejs简单实现TCP服务器端和客户端的聊天功能示例
Jan 04 NodeJs
nodejs多版本管理总结
Apr 03 NodeJs
原生nodejs使用websocket代码分享
Apr 07 NodeJs
详解Nodejs内存治理
May 13 NodeJs
nodeJS进程管理器pm2的使用
Jan 09 NodeJs
Nodejs文件上传、监听上传进度的代码
Mar 27 NodeJs
ubuntu编译nodejs所需的软件并安装
Sep 12 #NodeJs
nodejs对express中next函数的一些理解
Sep 08 #NodeJs
nodejs 图解express+supervisor+ejs的用法(推荐)
Sep 08 #NodeJs
nodejs创建简易web服务器与文件读写的实例
Sep 07 #NodeJs
NodeJS设计模式总结【单例模式,适配器模式,装饰模式,观察者模式】
Sep 06 #NodeJs
Nodejs进阶之服务端字符编解码和乱码处理
Sep 04 #NodeJs
Windows下使用Nodejs运行js的方法
Sep 02 #NodeJs
You might like
设定php简写功能的方法
2019/11/28 PHP
JS运行耗时操作的延时显示方法
2010/11/19 Javascript
在jquery中处理带有命名空间的XML数据
2011/06/13 Javascript
JS使用replace()方法和正则表达式进行字符串的搜索与替换实例
2014/04/10 Javascript
JavaScript判断变量是否为空的自定义函数分享
2015/01/31 Javascript
javascript返回顶部的按钮实现方法
2016/01/09 Javascript
Jquery和BigFileUpload实现大文件上传及进度条显示
2016/06/27 Javascript
jQuery表单对象属性过滤选择器实例详解
2016/09/13 Javascript
微信js-sdk预览图片接口及从拍照或手机相册中选图接口用法示例
2016/10/13 Javascript
Angularjs中三种数据的绑定策略(“@”,“=”,“&”)
2016/12/23 Javascript
jQuery Form表单取值的方法
2017/01/11 Javascript
js仿百度音乐全选操作
2017/01/13 Javascript
elementUI Vue 单个按钮显示和隐藏的变换功能(两种方法)
2018/09/04 Javascript
jQuery实现为动态添加的元素绑定事件实例分析
2018/09/07 jQuery
基于Element封装一个表格组件tableList的使用方法
2020/06/29 Javascript
微信小程序实现多张图片上传功能
2020/11/18 Javascript
[01:05]DOTA2完美大师赛趣味视频之选手教你打职业
2017/11/23 DOTA
Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)
2008/09/06 Python
利用Python+Java调用Shell脚本时的死锁陷阱详解
2018/01/24 Python
Python实现简单http服务器
2018/04/12 Python
详解Python:面向对象编程
2019/04/10 Python
python调用Matplotlib绘制分布点图
2019/10/18 Python
python实现差分隐私Laplace机制详解
2019/11/25 Python
Python3加密解密库Crypto的RSA加解密和签名/验签实现方法实例
2020/02/11 Python
python设置环境变量的作用整理
2020/02/17 Python
python实现从ftp服务器下载文件
2020/03/03 Python
Python垃圾回收机制三种实现方法
2020/04/27 Python
django orm模块中的 is_delete用法
2020/05/20 Python
opencv之颜色过滤只留下图片中的红色区域操作
2020/06/05 Python
详解css3自定义滚动条样式写法
2017/12/25 HTML / CSS
数据库基础的一些面试题
2012/02/25 面试题
领导干部遵守党的政治纪律情况思想汇报
2014/09/14 职场文书
2014年项目工作总结
2014/11/24 职场文书
小学生节约用水倡议书
2019/08/12 职场文书
python-for x in range的用法(注意要点、细节)
2021/05/10 Python
使用CSS3实现按钮悬停闪烁动态特效代码
2021/08/30 HTML / CSS