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学习笔记之入门篇
Apr 16 NodeJs
nodejs导出excel的方法
Jun 30 NodeJs
在windows上用nodejs搭建静态文件服务器的简单方法
Aug 11 NodeJs
3分钟快速搭建nodejs本地服务器方法运行测试html/js
Apr 01 NodeJs
nodejs密码加密中生成随机数的实例代码
Jul 17 NodeJs
详解Nodejs 通过 fs.createWriteStream 保存文件
Oct 10 NodeJs
nodejs使用express获取get和post传值及session验证的方法
Nov 09 NodeJs
Nodejs下使用gm圆形裁剪并合成图片的示例
Feb 22 NodeJs
nodejs读取并去重excel文件
Apr 22 NodeJs
nodejs dgram模块广播+组播的实现示例
Nov 04 NodeJs
使用nodejs实现JSON文件自动转Excel的工具(推荐)
Jun 24 NodeJs
浅谈JS和Nodejs中的事件驱动
May 05 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批量删除、清除UTF-8文件BOM头的代码实例
2014/04/14 PHP
php获取apk包信息的方法
2014/08/15 PHP
php header函数的常用http头设置
2015/06/25 PHP
php安装php_rar扩展实现rar文件读取和解压的方法
2016/11/17 PHP
PHP 年月日的三级联动实例代码
2017/05/24 PHP
PHP网站自动化配置的实现方法(必看)
2017/05/27 PHP
PHP实现的防止跨站和xss攻击代码【来自阿里云】
2018/01/29 PHP
PHP设计模式之委托模式定义与用法简单示例
2018/08/13 PHP
JS中typeof与instanceof之间的区别总结
2013/11/14 Javascript
JQuery中DOM事件冒泡实例分析
2015/06/13 Javascript
深入解析JavaScript编程中的this关键字使用
2015/11/09 Javascript
vue开发调试神器vue-devtools使用详解
2017/07/13 Javascript
vue路由懒加载的实现方法
2018/03/12 Javascript
layer.confirm取消按钮绑定事件的方法
2018/08/17 Javascript
uni app仿微信顶部导航条功能
2019/09/17 Javascript
Python常用算法学习基础教程
2017/04/13 Python
python实现自动解数独小程序
2019/01/21 Python
使用Python实现图像标记点的坐标输出功能
2019/08/14 Python
python__new__内置静态方法使用解析
2020/01/07 Python
python应用Axes3D绘图(批量梯度下降算法)
2020/03/25 Python
Python实现从N个数中找到最大的K个数
2020/04/02 Python
HTML5 input元素类型:email及url介绍
2013/08/13 HTML / CSS
Burberry英国官网:英国标志性奢侈品牌
2017/03/29 全球购物
加拿大最大的体育用品、鞋类和服装零售商:Sport Chek
2018/11/29 全球购物
山海经纬软件测试笔试题和面试题
2013/04/02 面试题
SOA面试题:如何在SOA中实现松耦合
2013/07/21 面试题
自我鉴定200字
2013/10/28 职场文书
聚美优品恶搞广告词
2014/03/14 职场文书
协会周年庆活动方案
2014/08/26 职场文书
中韩经贸翻译专业大学生职业生涯规划范文
2014/09/18 职场文书
离婚协议书怎么写(范本参考)
2014/09/30 职场文书
群众路线个人自我剖析材料
2014/10/07 职场文书
上诉答辩状范文
2015/05/22 职场文书
交通安全教育心得体会
2016/01/15 职场文书
MySQL 中如何归档数据的实现方法
2022/03/16 SQL Server
Python Pytorch查询图像的特征从集合或数据库中查找图像
2022/04/09 Python