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实现获取当前url地址及url各种参数值
Jun 25 NodeJs
NodeJs安装npm包一直失败的解决方法
Apr 28 NodeJs
ajax +NodeJS 实现图片上传实例
Jun 06 NodeJs
nodejs(officegen)+vue(axios)在客户端导出word文档的方法
Jul 31 NodeJs
nodejs 生成和导出 word的实例代码
Jul 31 NodeJs
NodeJS实现自定义流的方法
Aug 01 NodeJs
搭建一个nodejs脚手架的方法步骤
Jun 28 NodeJs
nodejs语言实现验证码生成功能的示例代码
Oct 13 NodeJs
NodeJS实现一个聊天室功能
Nov 25 NodeJs
NodeJS多种创建WebSocket监听的方式(三种)
Jun 04 NodeJs
通过实例了解Nodejs模块系统及require机制
Jul 16 NodeJs
nodejs+express最简易的连接数据库的方法
Dec 23 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 翻页 实例代码
2009/08/07 PHP
php $_SERVER["REQUEST_URI"]获取值的通用解决方法
2010/06/21 PHP
ECMall支持SSL连接邮件服务器的配置方法详解
2014/05/19 PHP
php多个文件及图片上传实例详解
2014/11/10 PHP
PHP生成树的方法
2015/07/28 PHP
Yii2设置默认控制器的两种方法
2017/05/19 PHP
PHP实现的大文件切割与合并功能示例
2018/04/10 PHP
你可能不再需要JQUERY
2021/03/09 Javascript
js parseInt("08")未指定进位制问题
2010/06/19 Javascript
JQuery加载图片自适应固定大小的DIV
2013/09/12 Javascript
jquery导航制件jquery鼠标经过变色效果示例
2013/12/05 Javascript
javascript 控制input只允许输入的各种指定内容
2014/06/19 Javascript
详解js中class的多种函数封装方法
2016/01/03 Javascript
jQuery Easyui学习教程之实现datagrid在没有数据时显示相关提示内容
2016/07/09 Javascript
如何将 jQuery 从你的 Bootstrap 项目中移除(取而代之使用Vue.js)
2017/07/17 jQuery
layer弹出层全屏及关闭方法
2018/08/17 Javascript
Emberjs 通过 axios 下载文件的方法
2019/09/03 Javascript
JavaScript this关键字的深入详解
2021/01/14 Javascript
Java多线程编程中ThreadLocal类的用法及深入
2016/06/21 Python
Python实现删除文件中含“指定内容”的行示例
2017/06/09 Python
python pandas 组内排序、单组排序、标号的实例
2018/04/12 Python
python3 selenium自动化 下拉框定位的例子
2019/08/23 Python
Python完全识别验证码自动登录实例详解
2019/11/24 Python
pandas数据选取:df[] df.loc[] df.iloc[] df.ix[] df.at[] df.iat[]
2020/04/24 Python
利用Python实现字幕挂载(把字幕文件与视频合并)思路详解
2020/10/21 Python
美国现代家具和家居商店:Apt2B
2016/08/29 全球购物
Vans荷兰官方网站:美国南加州的原创极限运动潮牌
2018/01/23 全球购物
Rossignol金鸡美国官网:始于1907年法国百年雪具品牌
2019/03/06 全球购物
优秀部门获奖感言
2014/02/14 职场文书
联谊活动总结
2014/08/28 职场文书
党员批评与自我批评总结
2014/10/15 职场文书
西湖英语导游词
2015/02/06 职场文书
2015年评职称工作总结范文
2015/04/20 职场文书
学校元旦晚会开场白
2015/05/29 职场文书
飞越疯人院观后感
2015/06/09 职场文书
理想国读书笔记
2015/06/25 职场文书