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 npm install全局安装和本地安装的区别
Jun 05 NodeJs
nodejs npm包管理的配置方法及常用命令介绍
Jun 05 NodeJs
初始Nodejs
Nov 08 NodeJs
nodejs 提示‘xxx’ 不是内部或外部命令解决方法
Nov 20 NodeJs
nodejs实现发出蜂鸣声音(系统报警声)的方法
Jan 18 NodeJs
Nodejs多站点切换Htpps协议详解及简单实例
Feb 23 NodeJs
Nodejs之TCP服务端与客户端聊天程序详解
Jul 07 NodeJs
详解IWinter 一个路由转控制器的 Nodejs 库
Nov 15 NodeJs
nodejs使用http模块发送get与post请求的方法示例
Jan 08 NodeJs
NodeJS如何实现同步的方法示例
Aug 24 NodeJs
详解nodejs 配置文件处理方案
Jan 02 NodeJs
详解NodeJs项目 CentOs linux服务器线上部署
Sep 16 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
Content-type 的说明
2006/10/09 PHP
PHP连接access数据库
2008/03/27 PHP
fleaphp下不确定的多条件查询的巧妙解决方法
2008/09/11 PHP
ThinkPHP提示错误Fatal error: Allowed memory size的解决方法
2015/02/12 PHP
php生成条形码的图片的实例详解
2017/09/13 PHP
JQuery 确定css方框模型(盒模型Box Model)
2010/01/22 Javascript
javascript中[]和{}对象使用介绍
2013/03/20 Javascript
为什么要在引入的css或者js文件后面加参数的详细讲解
2013/05/03 Javascript
Javascript全局变量var与不var的区别深入解析
2013/12/09 Javascript
ECMAScript6新增值比较函数Object.is
2015/06/12 Javascript
Bootstrap图片轮播组件Carousel使用方法详解
2016/10/20 Javascript
JS实现上传图片的三种方法并实现预览图片功能
2017/07/14 Javascript
AngularJS中ng-options实现下拉列表的数据绑定方法
2018/08/13 Javascript
通过实例了解JS执行上下文运行原理
2020/06/17 Javascript
js实现点击烟花特效
2020/10/14 Javascript
微信小程序实现自定义底部导航
2020/11/18 Javascript
python自动安装pip
2014/04/24 Python
深入理解Python中字典的键的使用
2015/08/19 Python
Python实现进程同步和通信的方法
2018/01/02 Python
Django+Ajax+jQuery实现网页动态更新的实例
2018/05/28 Python
Python3实现转换Image图片格式
2018/06/21 Python
python读取hdfs上的parquet文件方式
2020/06/06 Python
Python tkinter界面实现历史天气查询的示例代码
2020/08/23 Python
size?德国官方网站:英国伦敦的球鞋精品店
2018/03/17 全球购物
彪马土耳其官网:PUMA土耳其
2019/07/14 全球购物
会计实习生自我鉴定
2013/12/12 职场文书
人事部经理岗位职责
2014/03/07 职场文书
生日宴会策划方案
2014/06/03 职场文书
我的梦想演讲稿1000字
2014/08/21 职场文书
放飞梦想演讲稿200字
2014/08/26 职场文书
大学生实习推荐信
2015/03/27 职场文书
公司劳动纪律管理制度
2015/08/04 职场文书
2016公务员年度考核评语
2015/12/01 职场文书
详解Vue的options
2021/05/15 Vue.js
Python办公自动化之教你用Python批量识别发票并录入到Excel表格中
2021/06/26 Python
MySQL深度分页(千万级数据量如何快速分页)
2021/07/25 MySQL