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与Mysql的交互示例代码
Aug 18 NodeJs
nodejs npm包管理的配置方法及常用命令介绍
Jun 05 NodeJs
Nodejs异步回调的优雅处理方法
Sep 25 NodeJs
Nodejs为什么选择javascript为载体语言
Jan 13 NodeJs
详解Nodejs的timers模块
Dec 22 NodeJs
详解nodejs操作mongodb数据库封装DB类
Apr 10 NodeJs
NodeJS、NPM安装配置步骤(windows版本) 以及环境变量详解
May 13 NodeJs
详解使用nodeJs安装Vue-cli
May 17 NodeJs
mac下的nodejs环境安装的步骤
May 24 NodeJs
原生nodejs使用websocket代码分享
Apr 07 NodeJs
使用 Koa + TS + ESLlint 搭建node服务器的过程详解
May 30 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
ob_start(),ob_start('ob_gzhandler')使用
2006/12/25 PHP
php 对输入信息的进行安全过滤的函数代码
2012/06/29 PHP
php ci 获取表单中多个同名input元素值的代码
2016/03/25 PHP
php解析xml 的四种简单方法(附实例)
2016/07/11 PHP
jsPDF导出pdf示例
2014/05/02 Javascript
JS实现点击上移下移LI行数据的方法
2015/08/05 Javascript
深入理解Angularjs向指令传递数据双向绑定机制
2016/12/31 Javascript
bootstrap模态框示例代码分享
2017/05/17 Javascript
JS图片轮播与索引变色功能实例详解
2017/07/06 Javascript
实例教学如何写vue插件
2017/11/30 Javascript
Vue项目全局配置微信分享思路详解
2018/05/04 Javascript
vue实现组件之间传值功能示例
2018/07/13 Javascript
ndm:NPM的桌面GUI应用程序
2018/10/15 Javascript
微信小程序用户授权弹窗 拒绝时引导用户重新授权实现
2019/07/29 Javascript
JavaScript在web自动化测试中的作用示例详解
2019/08/25 Javascript
js实现无缝轮播图特效
2020/05/09 Javascript
[04:10]DOTA2英雄梦之声_第11期_圣堂刺客
2014/06/21 DOTA
讲解Python的Scrapy爬虫框架使用代理进行采集的方法
2016/02/18 Python
Python实现向服务器请求压缩数据及解压缩数据的方法示例
2017/06/09 Python
django文档学习之applications使用详解
2018/01/29 Python
Python进阶之递归函数的用法及其示例
2018/01/31 Python
Python Tkinter模块 GUI 可视化实例
2019/11/20 Python
如何更改 pandas dataframe 中两列的位置
2019/12/27 Python
python 中的paramiko模块简介及安装过程
2020/02/29 Python
浅谈JupyterNotebook导出pdf解决中文的问题
2020/04/22 Python
解决IDEA 的 plugins 搜不到任何的插件问题
2020/05/04 Python
一篇文章带你搞定Ubuntu中打开Pycharm总是卡顿崩溃
2020/11/02 Python
HTML5 video 上传预览图片视频如何设置、预览视频某秒的海报帧
2018/08/28 HTML / CSS
Android面试题及答案
2015/09/04 面试题
社区优秀志愿者材料
2014/02/02 职场文书
军校大学生个人的自我评价
2014/02/17 职场文书
酒店员工检讨书
2014/02/18 职场文书
2014年五四青年节活动策划书
2014/04/22 职场文书
暑假学习心得体会
2014/09/02 职场文书
教师自我剖析材料(群众路线)
2014/09/29 职场文书
婚前协议书标准版
2014/10/19 职场文书