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 提示‘xxx’ 不是内部或外部命令解决方法
Nov 20 NodeJs
NodeJS Web应用监听sock文件实例
Feb 18 NodeJs
Nodejs学习笔记之入门篇
Apr 16 NodeJs
nodejs中使用HTTP分块响应和定时器示例代码
Mar 19 NodeJs
nodejs个人博客开发第一步 准备工作
Apr 12 NodeJs
nodejs 图片预览和上传的示例代码
Sep 30 NodeJs
nodeJs爬虫的技术点总结
May 13 NodeJs
NodeJS 将文件夹按照存放路径变成一个对应的JSON的方法
Oct 17 NodeJs
linux 下以二进制的方式安装 nodejs
Feb 12 NodeJs
Nodejs 微信小程序消息推送的实现
Jan 20 NodeJs
在nodejs中创建child process的方法
Jan 26 NodeJs
Nodejs 数组的队列以及forEach的应用详解
Feb 25 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 和 MySQL 基础教程(一)
2006/10/09 PHP
解决GD中文乱码问题
2007/02/14 PHP
Sorting Array Values in PHP(数组排序)
2011/09/15 PHP
php生成随机颜色方法汇总
2014/12/03 PHP
PHP使用正则表达式实现过滤非法字符串功能示例
2018/06/04 PHP
javascript读取RSS数据
2007/01/20 Javascript
点图片上一页下一页翻页效果
2008/07/09 Javascript
验证码按回车不变解决方法
2013/03/29 Javascript
js操纵跨frame的三级联动select下拉选项实例介绍
2013/05/19 Javascript
cookie的复制与使用记住用户名实现代码
2013/11/04 Javascript
javascript中scrollTop详解
2015/04/13 Javascript
jQuery实现自动调整字体大小的方法
2015/06/15 Javascript
js遍历map javaScript遍历map的简单实现
2016/08/26 Javascript
bootstrap+jQuery 实现下拉菜单中复选框全选和全不选效果
2017/06/12 jQuery
JS仿QQ好友列表展开、收缩功能(第二篇)
2017/07/07 Javascript
关于react-router的几种配置方式详解
2017/07/24 Javascript
laydate 显示结束时间不小于开始时间的实例
2017/08/11 Javascript
Vue.js框架路由使用方法实例详解
2017/08/25 Javascript
基于angular-utils-ui-breadcrumbs使用心得(分享)
2017/11/03 Javascript
JS设计模式之状态模式概念与用法分析
2018/02/05 Javascript
Vue中v-show添加表达式的问题(判断是否显示)
2018/03/26 Javascript
echarts 使用formatter 修改鼠标悬浮事件信息操作
2020/07/20 Javascript
[01:46]新英雄登场
2019/09/10 DOTA
Python动态声明变量赋值代码实例
2019/12/30 Python
Python如何获取Win7,Win10系统缩放大小
2020/01/10 Python
FOREO斐珞尔官方旗舰店:LUNA露娜洁面仪
2018/03/11 全球购物
乐高官方旗舰店:LEGO积木玩具
2019/04/06 全球购物
女孩每月服装订阅盒:kidpik
2019/04/17 全球购物
shallow copy和deep copy的区别
2016/05/09 面试题
毕业大学生自荐信
2014/06/17 职场文书
三分钟自我介绍演讲稿
2014/08/21 职场文书
司机工作自我鉴定
2014/09/19 职场文书
党员志愿者服务倡议书
2015/04/29 职场文书
房贷收入证明范本
2015/06/12 职场文书
Python编解码问题及文本文件处理方法详解
2021/06/20 Python
python实现双向链表原理
2022/05/25 Python