nodejs socket实现的服务端和客户端功能示例


Posted in NodeJs onJune 02, 2017

本文实例讲述了nodejs socket实现的服务端和客户端功能。分享给大家供大家参考,具体如下:

使用node.js的net模块能很快的开发出基于TCP的服务端和客户端。直接贴代码。

server.js

/**
 * Created with JetBrains WebStorm.
 * User: Administrator
 * Date: 12-10-26
 * Time: 下午3:44
 * To change this template use File | Settings | File Templates.
 */
var net = require('net');
var timeout = 20000;//超时
var listenPort = 7003;//监听端口
var server = net.createServer(function(socket){
  // 我们获得一个连接 - 该连接自动关联一个socket对象
  console.log('connect: ' +
    socket.remoteAddress + ':' + socket.remotePort);
  socket.setEncoding('binary');
  //超时事件
//  socket.setTimeout(timeout,function(){
//    console.log('连接超时');
//    socket.end();
//  });
  //接收到数据
  socket.on('data',function(data){
    console.log('recv:' + data);
  });
  //数据错误事件
  socket.on('error',function(exception){
    console.log('socket error:' + exception);
    socket.end();
  });
  //客户端关闭事件
  socket.on('close',function(data){
    console.log('close: ' +
      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.js

/**
 * Created with JetBrains WebStorm.
 * User: Administrator
 * Date: 12-10-26
 * Time: 下午3:56
 * To change this template use File | Settings | File Templates.
 */
var net = require('net');
var port = 7003;
var host = '127.0.0.1';
var client= new net.Socket();
client.setEncoding('binary');
//连接到服务端
client.connect(port,host,function(){
  client.write('hello my client');
});
client.on('data',function(data){
  console.log('recv data:'+ data);
});
client.on('error',function(error){
  console.log('error:'+error);
  client.destory();
});
client.on('close',function(){
  console.log('Connection closed');
});

希望本文所述对大家nodejs程序设计有所帮助。

NodeJs 相关文章推荐
将nodejs打包工具整合到鼠标右键的方法
May 11 NodeJs
基于NodeJS的前后端分离的思考与实践(一)全栈式开发
Sep 26 NodeJs
nodejs实现获取某宝商品分类
May 28 NodeJs
Nodejs进阶:基于express+multer的文件上传实例
Nov 21 NodeJs
详解nodejs 文本操作模块-fs模块(三)
Dec 22 NodeJs
详解nodejs微信公众号开发——6.自定义菜单
Apr 13 NodeJs
nodejs socket实现的服务端和客户端功能示例
Jun 02 NodeJs
深入解析nodejs HTTP服务
Jul 25 NodeJs
nodejs多版本管理总结
Apr 03 NodeJs
详解webpack打包nodejs项目(前端代码)
Sep 19 NodeJs
nodejs通过钉钉群机器人推送消息的实现代码
May 05 NodeJs
NodeJs生成sitemap站点地图的方法示例
Jun 11 NodeJs
NodeJs使用Mysql模块实现事务处理实例
May 31 #NodeJs
基于nodejs 的多页面爬虫实例代码
May 31 #NodeJs
详解nodeJS之路径PATH模块
May 31 #NodeJs
NodeJS实现微信公众号关注后自动回复功能
May 31 #NodeJs
nodejs操作mysql实现增删改查的实例
May 28 #NodeJs
详解nodejs微信jssdk后端接口
May 25 #NodeJs
mac下的nodejs环境安装的步骤
May 24 #NodeJs
You might like
php循环输出数据库内容的代码
2008/05/24 PHP
PHP程序员必须清楚的问题汇总
2014/12/18 PHP
PHP读取CSV大文件导入数据库的实例
2017/07/24 PHP
Yii框架操作cookie与session的方法实例详解
2019/09/04 PHP
juqery 学习之三 选择器 可见性 元素属性
2010/11/25 Javascript
jquery的flexigrid无法显示数据提示获取到数据
2013/07/19 Javascript
JS 两个字符串时间的天数差计算
2013/08/25 Javascript
jQuery1.9.1针对checkbox的调整方法(prop)
2014/05/01 Javascript
vue.js 表格分页ajax 异步加载数据
2016/10/18 Javascript
bootstrap组件之导航组件使用方法
2017/01/19 Javascript
js实现移动端编辑添加地址【模仿京东】
2017/04/28 Javascript
JS数组操作中的经典算法实例讲解
2017/07/26 Javascript
浅谈关于angularJs中使用$.ajax的注意点
2017/08/12 Javascript
JS实现导出Excel的五种方法详解【附源码下载】
2018/03/15 Javascript
vue组件中watch props根据v-if动态判断并挂载DOM的问题
2019/05/12 Javascript
解决js中的setInterval清空定时器不管用问题
2020/11/17 Javascript
[03:52]显微镜下的DOTA2第三期——英雄在无聊的时候干什么
2014/06/20 DOTA
[01:07:19]DOTA2-DPC中国联赛 正赛 CDEC vs XG BO3 第一场 1月19日
2021/03/11 DOTA
老生常谈Python序列化和反序列化
2017/06/28 Python
Python实现的简单计算器功能详解
2018/08/25 Python
Python设计模式之简单工厂模式实例详解
2019/01/22 Python
python批量下载抖音视频
2019/06/17 Python
关于python3中setup.py小概念解析
2019/08/22 Python
Python 动态导入对象,importlib.import_module()的使用方法
2019/08/28 Python
Python API自动化框架总结
2019/11/12 Python
基于python实现监听Rabbitmq系统日志代码示例
2020/11/28 Python
python中PyQuery库用法分享
2021/01/15 Python
软件测试企业面试试卷
2016/07/13 面试题
毕业生个人的求职信范文
2013/12/03 职场文书
简历中自我评价怎么写
2014/02/12 职场文书
环保建议书
2014/03/12 职场文书
营销总监岗位职责
2014/09/16 职场文书
2014党的群众路线教育实践活动总结报告
2014/10/31 职场文书
小学班主任工作随笔
2015/08/15 职场文书
入党转正申请书范文
2019/05/20 职场文书
详解Html5项目适配系统深色模式方案总结
2021/04/14 HTML / CSS