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下打包模块archiver详解
Dec 03 NodeJs
nodejs爬虫抓取数据之编码问题
Jul 03 NodeJs
Nodejs下用submit提交表单提示cannot post错误的解决方法
Nov 21 NodeJs
基于Nodejs利用socket.io实现多人聊天室
Feb 22 NodeJs
详解nodejs微信公众号开发——4.自动回复各种消息
Apr 11 NodeJs
nodejs集成sqlite使用示例
Jun 05 NodeJs
nodejs基于WS模块实现WebSocket聊天功能的方法
Jan 12 NodeJs
nodejs 使用nodejs-websocket模块实现点对点实时通讯
Nov 28 NodeJs
nodejs开发一个最简单的web服务器实例讲解
Jan 02 NodeJs
NodeJS多种创建WebSocket监听的方式(三种)
Jun 04 NodeJs
NodeJs使用webpack打包项目的方法详解
Feb 28 NodeJs
分享五个Node.js开发的优秀实践 
Apr 07 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
nginx+php-fpm配置文件的组织结构介绍
2012/11/07 PHP
php中的字符编码转换函数用法示例
2014/10/20 PHP
php计算数组相同值出现次数的代码(array_count_values)
2015/01/20 PHP
Yii数据库缓存实例分析
2016/03/29 PHP
URI、URL和URN之间的区别与联系
2006/12/20 Javascript
JQuery 将元素显示在屏幕的中央的代码
2010/02/27 Javascript
filters.revealTrans.Transition使用方法小结
2010/08/19 Javascript
jQuery Tab插件 用于在Tab中显示iframe,附源码和详细说明
2011/06/27 Javascript
js阻止冒泡及jquery阻止事件冒泡示例介绍
2013/11/19 Javascript
Extjs4中的分页应用结合前后台
2013/12/13 Javascript
JsRender for index循环索引用法详解
2014/10/31 Javascript
nodejs创建web服务器之hello world程序
2015/08/20 NodeJs
简单谈谈json跨域
2016/03/13 Javascript
Bootstrap图片轮播组件Carousel使用方法详解
2016/10/20 Javascript
JS中实现函数return多个返回值的实例
2017/02/21 Javascript
jQuery extend()详解及简单实例
2017/05/06 jQuery
js实现随机点名小功能
2017/08/17 Javascript
200行代码实现blockchain 区块链实例详解
2018/03/14 Javascript
微信小程序 setData 对 data数据影响问题
2019/04/18 Javascript
详解基于Wepy开发小程序插件(推荐)
2019/08/01 Javascript
微信小程序的授权实现过程解析
2019/08/02 Javascript
解决Angularjs异步操作后台请求用$q.all排列先后顺序问题
2019/11/29 Javascript
win系统下为Python3.5安装flask-mongoengine 库
2016/12/20 Python
python操作xlsx文件的包openpyxl实例
2018/05/03 Python
Python自然语言处理 NLTK 库用法入门教程【经典】
2018/06/26 Python
Pandas 缺失数据处理的实现
2019/11/04 Python
python线程信号量semaphore使用解析
2019/11/30 Python
python实现Oracle查询分组的方法示例
2020/04/30 Python
Python结合Window计划任务监测邮件的示例代码
2020/08/05 Python
HTML5 video播放器全屏(fullScreen)方法实例
2015/04/24 HTML / CSS
BRASTY捷克:购买香水、化妆品、手袋和手表
2017/07/12 全球购物
心理学专业毕业生推荐信范文
2013/11/21 职场文书
银行党的群众路线教育实践活动对照检查材料
2014/09/25 职场文书
单位推荐信范文
2015/03/27 职场文书
浅析Python中的套接字编程
2021/06/22 Python
Win11局域网共享权限在哪里设置? Win11高级共享的设置技巧
2022/04/05 数码科技