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中操作mysql数据库示例
Dec 20 NodeJs
基于nodejs+express(4.x+)实现文件上传功能
Nov 23 NodeJs
用nodejs的实现原理和搭建服务器(动态)
Aug 10 NodeJs
nodejs入门教程四:URL相关模块用法分析
Apr 24 NodeJs
NodeJS实现图片上传代码(Express)
Jun 30 NodeJs
nodejs body-parser 解析post数据实例
Jul 26 NodeJs
Mac 安装 nodejs方法(图文详细步骤)
Oct 30 NodeJs
nodejs实现爬取网站图片功能
Dec 14 NodeJs
nodejs使用redis作为缓存介质实现的封装缓存类示例
Feb 07 NodeJs
nodejs express配置自签名https服务器的方法
May 22 NodeJs
nodejs同步调用获取mysql数据时遇到的大坑
Mar 02 NodeJs
详解利用nodejs对本地json文件进行增删改查
Sep 20 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 array_pop()数组函数将数组最后一个单元弹出(出栈)
2011/07/12 PHP
PHP获取当前日期所在星期(月份)的开始日期与结束日期(实现代码)
2013/06/18 PHP
php发送post请求函数分享
2014/03/06 PHP
PHP中的随机性 你觉得自己幸运吗?
2016/01/22 PHP
YII2框架中使用yii.js实现的post请求
2017/04/09 PHP
php实现微信公众平台发红包功能
2018/06/14 PHP
统一接口:为FireFox添加IE的方法和属性的js代码
2007/03/25 Javascript
js 兼容多浏览器的回车和鼠标焦点事件代码(IE6/7/8,firefox,chrome)
2010/04/14 Javascript
javascript 实用的文字链提示框效果
2010/06/30 Javascript
ajax中get和post的说明及使用与区别
2012/12/23 Javascript
JS 两日期相减,获得天数的小例子(兼容IE,FF)
2013/07/01 Javascript
详解JavaScript中的forEach()方法的使用
2015/06/08 Javascript
JQuery中ajax方法访问web服务实例
2015/07/18 Javascript
谷歌showModalDialog()方法不兼容出现对话窗口的解决办法
2016/02/15 Javascript
js实现鼠标拖动功能
2017/03/20 Javascript
AngularJS2 与 D3.js集成实现自定义可视化的方法
2017/12/01 Javascript
详解JavaScript的内存空间、赋值和深浅拷贝
2019/04/17 Javascript
javascript异步编程的六种方式总结
2019/05/17 Javascript
vue使用video.js进行视频播放功能
2019/07/18 Javascript
Vue封装的组件全局注册并引用
2019/07/24 Javascript
nuxt.js写项目时增加错误提示页面操作
2020/11/05 Javascript
Vue 实现一个简单的鼠标拖拽滚动效果插件
2020/12/10 Vue.js
Python编程中对文件和存储器的读写示例
2016/01/25 Python
Python数据结构与算法之完全树与最小堆实例
2017/12/13 Python
将tensorflow的ckpt模型存储为npy的实例
2018/07/09 Python
python 读取视频,处理后,实时计算帧数fps的方法
2018/07/10 Python
Python 实现数据结构中的的栈队列
2019/05/16 Python
Python安装与卸载流程详细步骤(图解)
2020/02/20 Python
欧洲领先的技术商店:eibmarkt.com
2019/05/10 全球购物
家居饰品店创业计划书
2014/01/31 职场文书
《火烧云》教学反思
2014/04/12 职场文书
计算机实训报告总结
2014/11/05 职场文书
团日活动总结格式
2015/05/11 职场文书
JavaScript实现复选框全选功能
2021/04/11 Javascript
使用PDF.js渲染canvas实现预览pdf的效果示例
2021/04/17 Javascript
游戏《东方异文石:爱亚利亚黎明》正式版发布
2022/04/03 其他游戏