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中使用monk访问mongodb
Jul 06 NodeJs
nodejs 实现模拟form表单上传文件
Jul 14 NodeJs
Nodejs的express使用教程
Nov 23 NodeJs
nodejs利用http模块实现银行卡所属银行查询和骚扰电话验证示例
Dec 30 NodeJs
详解nodejs中的process进程
Mar 19 NodeJs
Nodejs中使用captchapng模块生成图片验证码
May 18 NodeJs
ubuntu编译nodejs所需的软件并安装
Sep 12 NodeJs
Nodejs+angularjs结合multiparty实现多图片上传的示例代码
Sep 29 NodeJs
nodejs 图片预览和上传的示例代码
Sep 30 NodeJs
详解redis在nodejs中的应用
May 02 NodeJs
NodeJS 文件夹拷贝以及删除功能
Sep 03 NodeJs
使用nodeJS中的fs模块对文件及目录进行读写,删除,追加,等操作详解
Feb 06 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 memcache扩展的三种安装方法
2009/04/26 PHP
分享下页面关键字抓取www.icbase.com站点代码(带asp.net参数的)
2014/01/30 PHP
PHP用反撇号执行外部命令
2015/04/14 PHP
PHP fopen中文文件名乱码问题解决方案
2020/10/28 PHP
jquery text,radio,checkbox,select操作实现代码
2009/07/09 Javascript
Js操作Select大全(取值、设置选中等等)
2013/10/29 Javascript
js 将json字符串转换为json对象的方法解析
2013/11/13 Javascript
基于jQuery下拉选择框插件支持单选多选功能代码
2016/06/07 Javascript
jquery 获取select数组与name数组长度的实现代码
2016/06/20 Javascript
原生js实现class的添加和删除简单代码
2016/07/12 Javascript
JavaScript微信定位功能实现方法
2016/11/29 Javascript
JavaScript实现拖拽元素对齐到网格(每次移动固定距离)
2016/11/30 Javascript
jQuery无刷新上传之uploadify简单代码
2017/01/17 Javascript
jQuery实现鼠标滑过预览图片大图效果的方法
2017/04/26 jQuery
实例讲解DataTables固定表格宽度(设置横向滚动条)
2017/07/11 Javascript
javascript基本常用排序算法解析
2017/09/27 Javascript
Javacript中自定义的map.js  的方法
2017/11/26 Javascript
jQuery中ajax请求后台返回json数据并渲染HTML的方法
2018/08/08 jQuery
bootstrap里bootstrap动态加载下拉框的实例讲解
2018/08/10 Javascript
js实现滑动滑块验证登录
2020/07/24 Javascript
使用Vant完成通知栏Notify的提示操作
2020/11/11 Javascript
js canvas实现五子棋小游戏
2021/01/22 Javascript
[02:53]DOTA2亚洲邀请赛 NewBee战队巡礼
2015/02/03 DOTA
使用python实现strcmp函数功能示例
2014/03/25 Python
python之Character string(实例讲解)
2017/09/25 Python
python中requests库session对象的妙用详解
2017/10/30 Python
解决python3 urllib 链接中有中文的问题
2018/07/16 Python
Selenium定位元素操作示例
2018/08/10 Python
利用Django模版生成树状结构实例代码
2019/05/19 Python
python中加背景音乐如何操作
2020/07/19 Python
python Autopep8实现按PEP8风格自动排版Python代码
2021/03/02 Python
绿色美容,有机护肤品和化妆品:Safe & Chic
2018/10/29 全球购物
市委常委会班子党的群众路线教育实践活动整改方案
2014/10/25 职场文书
如何写通讯稿
2015/07/22 职场文书
获奖感言一句话
2015/07/31 职场文书
2017元旦晚会开幕词
2016/03/03 职场文书