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 相关文章推荐
windows系统下简单nodejs安装及环境配置
Jan 08 NodeJs
nodejs npm包管理的配置方法及常用命令介绍
Jun 05 NodeJs
Nodejs express框架一个工程中同时使用ejs模版和jade模版
Dec 28 NodeJs
NodeJS实现客户端js加密
Jan 09 NodeJs
Express与NodeJs创建服务器的两种方法
Feb 06 NodeJs
详解nodejs微信公众号开发——1.接入微信公众号
Apr 10 NodeJs
详解nodejs微信公众号开发——2.自动回复
Apr 10 NodeJs
详解nodejs express下使用redis管理session
Apr 24 NodeJs
详解HTTPS 的原理和 NodeJS 的实现
Jul 04 NodeJs
ubuntu编译nodejs所需的软件并安装
Sep 12 NodeJs
基于Nodejs的Tcp封包和解包的理解
Sep 19 NodeJs
Sublime Text3 配置 NodeJs 环境的方法
May 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
session在php5.3中的变化 session_is_registered() is deprecated in
2013/11/12 PHP
PHP学习笔记(三):数据类型转换与常量介绍
2015/04/17 PHP
PHP file_get_contents函数读取远程数据超时的解决方法
2015/05/13 PHP
php简单生成随机数的方法
2015/07/30 PHP
ThinkPHP模板循环输出Volist标签用法实例详解
2016/03/23 PHP
PHP获取数组中指定的一列实例
2017/12/27 PHP
JavaScript中使用构造函数实现继承的代码
2010/08/12 Javascript
禁用键盘上的(全局)指定键兼容iE、Chrome、火狐
2013/05/14 Javascript
js中如何把字符串转化为对象、数组示例代码
2013/07/17 Javascript
jQuery插件实现表格隔行换色且感应鼠标高亮行变色
2013/09/22 Javascript
如何让浏览器支持jquery ajax load 前进、后退功能
2014/06/12 Javascript
js实现宇宙星空背景效果的方法
2015/03/03 Javascript
jQuery 判断图片是否加载完成方法汇总
2015/08/10 Javascript
js实现仿京东2级菜单效果(带延时功能)
2015/08/27 Javascript
jQuery Validation PlugIn的使用方法详解
2015/12/18 Javascript
JavaScript中点击事件的写法
2016/06/28 Javascript
jquery操作checkbox的常用方法总结【附测试源码下载】
2019/06/10 jQuery
使用layui的router来进行传参的实现方法
2019/09/06 Javascript
vue中echarts图表大小适应窗口大小且不需要刷新案例
2020/07/19 Javascript
[55:39]DOTA2-DPC中国联赛 正赛 VG vs LBZS BO3 第二场 1月19日
2021/03/11 DOTA
python 装饰器功能以及函数参数使用介绍
2012/01/27 Python
Python中使用gzip模块压缩文件的简单教程
2015/04/08 Python
利用Python暴力破解zip文件口令的方法详解
2017/12/21 Python
python爬虫实现中英翻译词典
2019/06/25 Python
Tensorflow模型实现预测或识别单张图片
2019/07/19 Python
Python序列类型的打包和解包实例
2019/12/21 Python
关于pytorch中全连接神经网络搭建两种模式详解
2020/01/14 Python
python 遗传算法求函数极值的实现代码
2020/02/11 Python
解决Python发送Http请求时,中文乱码的问题
2020/04/30 Python
学校读书活动总结
2014/06/30 职场文书
大专护理专业自荐信
2015/03/25 职场文书
放飞理想主题班会
2015/08/14 职场文书
个人落户申请书怎么写?
2019/06/28 职场文书
一文搞懂MySQL索引页结构
2022/02/28 MySQL
SONY600GR,国产收音机厂商永远的痛
2022/04/05 无线电
MySQL创建管理RANGE分区
2022/04/13 MySQL