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制作爬虫全过程
Dec 22 NodeJs
Nodejs为什么选择javascript为载体语言
Jan 13 NodeJs
nodejs实现HTTPS发起POST请求
Apr 23 NodeJs
Nodejs初级阶段之express
Nov 23 NodeJs
NodeJs安装npm包一直失败的解决方法
Apr 28 NodeJs
nodejs操作mysql实现增删改查的实例
May 28 NodeJs
nodejs socket实现的服务端和客户端功能示例
Jun 02 NodeJs
深入学习nodejs中的async模块的使用方法
Jul 12 NodeJs
Nodejs进阶之服务端字符编解码和乱码处理
Sep 04 NodeJs
nodejs中实现修改用户路由功能
May 24 NodeJs
nodejs实现聊天机器人功能
Sep 19 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中常用字符串处理代码片段整理
2011/11/07 PHP
跟我学Laravel之配置Laravel
2014/10/15 PHP
Yii扩展组件编写方法实例分析
2015/06/29 PHP
在Mac OS上编译安装Nginx+PHP+MariaDB开发环境的教程
2016/02/23 PHP
php读取torrent种子文件内容的方法(测试可用)
2016/05/03 PHP
php使用preg_match()函数验证ip地址的方法
2017/01/07 PHP
用javascript来实现动画导航效果的代码
2007/12/16 Javascript
jQuery Deferred和Promise创建响应式应用程序详细介绍
2013/03/05 Javascript
jQuery Mobile的loading对话框显示/隐藏方法分享
2013/11/26 Javascript
多种方式实现js图片预览
2016/12/12 Javascript
D3.js中强制异步文件读取同步的几种方法
2017/02/06 Javascript
JS实现两周内自动登录功能
2017/03/23 Javascript
react-router browserHistory刷新页面404问题解决方法
2017/12/29 Javascript
angular 数据绑定之[]和{{}}的区别
2018/09/25 Javascript
vue-cli3.0 脚手架搭建项目的过程详解
2018/10/19 Javascript
vue组件tabbar使用方法详解
2018/11/06 Javascript
JavaScript实现图片上传并预览并提交ajax
2019/09/30 Javascript
vue项目,代码提交至码云,iconfont的用法说明
2020/07/30 Javascript
利用Psyco提升Python运行速度
2014/12/24 Python
详解Python的collections模块中的deque双端队列结构
2016/07/07 Python
简单了解Python中的几种函数
2017/11/03 Python
Python干货:分享Python绘制六种可视化图表
2018/08/27 Python
使用python判断你是青少年还是老年人
2018/11/29 Python
python 利用pyttsx3文字转语音过程详解
2019/09/25 Python
Python+redis通过限流保护高并发系统
2020/04/15 Python
Django用户登录与注册系统的实现示例
2020/06/03 Python
HTML5和CSS3让网页设计提升到下一个高度
2009/08/14 HTML / CSS
中国领先的专业家电网购平台:国美在线
2016/12/25 全球购物
台湾网友喜爱的综合型网路购物商城:Yahoo! 奇摩购物中心
2018/03/10 全球购物
意大利咖啡、浓缩咖啡和浓缩咖啡机:illy caffe
2019/03/20 全球购物
高中生学习总结的自我评价范文
2013/10/13 职场文书
施工人员岗位职责
2013/12/12 职场文书
国际商务专业职业生涯规划书范文
2014/01/17 职场文书
商场主管竞聘书
2014/03/31 职场文书
Python实现Hash算法
2022/03/18 Python
Win11远程连接不上怎么办?Win11远程桌面用不了的解决方法
2022/08/05 数码科技