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框架Express的模板视图机制分析
Jul 19 NodeJs
windows系统下简单nodejs安装及环境配置
Jan 08 NodeJs
NodeJS制作爬虫全过程
Dec 22 NodeJs
nodejs实现bigpipe异步加载页面方案
Jan 26 NodeJs
nodejs multer实现文件上传与下载
May 10 NodeJs
深入理解Nodejs Global 模块
Jun 03 NodeJs
让nodeJS支持ES6的词法----babel的安装和使用方法
Jul 31 NodeJs
nodejs基于WS模块实现WebSocket聊天功能的方法
Jan 12 NodeJs
nodejs 使用http进行post或get请求的实例(携带cookie)
Jan 03 NodeJs
nodejs简单抓包工具使用详解
Aug 23 NodeJs
Nodejs实现图片上传、压缩预览、定时删除功能
Oct 25 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
农民C键的运用技巧
2020/03/04 星际争霸
PHP开发文件系统实例讲解
2006/10/09 PHP
php抓即时股票信息
2006/10/09 PHP
PHP获取文件后缀名的三个函数
2012/10/15 PHP
PHP错误提示的关闭方法详解
2013/06/23 PHP
PHP与javascript实现变量交互的示例代码
2013/07/23 PHP
php上传大文件失败的原因及应对策略
2015/10/20 PHP
java解析json方法总结
2019/05/16 PHP
PHPstorm启用自动换行的方法详解(IDE)
2020/09/17 PHP
Javascript 中介者模式实例
2009/12/16 Javascript
js 弹出框 替代浏览器的弹出框
2010/10/29 Javascript
javascript之Partial Application学习
2013/01/10 Javascript
jquery验证邮箱格式是否正确实例讲解
2015/11/16 Javascript
js面向对象编程总结
2017/02/16 Javascript
js自定义瀑布流布局插件
2017/05/16 Javascript
angular6根据environments配置文件更改开发所需要的环境的方法
2019/03/06 Javascript
vue2.0基于vue-cli+element-ui制作树形treeTable
2019/04/30 Javascript
layui动态加载多表头的实例
2019/09/05 Javascript
layui树形菜单动态遍历的例子
2019/09/23 Javascript
VUE.js实现动态设置输入框disabled属性
2019/10/28 Javascript
vue实现从外部修改组件内部的变量的值
2020/07/30 Javascript
[01:07:17]EG vs Optic Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
Python 第一步 hello world
2009/09/25 Python
Python处理json字符串转化为字典的简单实现
2016/07/07 Python
Python爬虫DOTA排行榜爬取实例(分享)
2017/06/13 Python
python实现对象列表根据某个属性排序的方法详解
2019/06/11 Python
Django框架 querySet功能解析
2019/09/04 Python
解决 jupyter notebook 回车换两行问题
2020/04/15 Python
在pycharm中debug 实时查看数据操作(交互式)
2020/06/09 Python
阿迪达斯希腊官方网上商店:adidas希腊
2019/04/06 全球购物
Super-Pharm波兰:药房和香水在一个地方
2020/08/18 全球购物
武汉高蓝德国际.net机试
2016/06/24 面试题
优秀教导主任事迹材料
2014/05/09 职场文书
学校地质灾害防治方案
2014/06/10 职场文书
教师批评与自我批评
2014/10/15 职场文书
2016年感恩教师节校园广播稿
2015/12/18 职场文书