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 相关文章推荐
PHP和NodeJs开发的应用如何共用Session
Apr 16 NodeJs
浅谈NodeJS中require路径问题
May 07 NodeJs
搭建简单的nodejs http服务器详解
Mar 09 NodeJs
nodejs爬虫遇到的乱码问题汇总
Apr 07 NodeJs
nodejs个人博客开发第二步 入口文件
Apr 12 NodeJs
NodeJS实现微信公众号关注后自动回复功能
May 31 NodeJs
详解nodejs异步I/O和事件循环
Jun 07 NodeJs
Nodejs+angularjs结合multiparty实现多图片上传的示例代码
Sep 29 NodeJs
详解使用PM2管理nodejs进程
Oct 24 NodeJs
Nodejs实现爬虫抓取数据实例解析
Jul 05 NodeJs
nodejs 生成和导出 word的实例代码
Jul 31 NodeJs
基于Koa(nodejs框架)对json文件进行增删改查的示例代码
Feb 02 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函数分享之curl方式取得数据、模拟登陆、POST数据
2014/06/04 PHP
Linux下安装PHP MSSQL扩展教程
2014/10/24 PHP
php使用curl模拟浏览器表单上传文件或者图片的方法
2018/11/10 PHP
Javascript 面向对象(一)(共有方法,私有方法,特权方法)
2012/05/23 Javascript
node.js中的console.dir方法使用说明
2014/12/10 Javascript
修改或扩展jQuery原生方法的代码实例
2015/01/13 Javascript
jquery.form.js实现将form提交转为ajax方式提交的方法
2015/04/07 Javascript
关于JS与jQuery中的文档加载问题
2017/08/22 jQuery
浅谈Node.js爬虫之网页请求模块
2018/01/11 Javascript
详解Vue webapp项目通过HBulider打包原生APP
2018/06/29 Javascript
详解vue填坑之解决部分浏览器不支持pushState方法
2018/07/12 Javascript
JS与SQL方式随机生成高强度密码示例
2018/12/29 Javascript
详解vue移动端项目代码拆分记录
2019/03/15 Javascript
详解vue中移动端自适应方案
2019/05/05 Javascript
微信小程序代码上传、审核发布小程序
2019/05/18 Javascript
浅谈TypeScript 用 Webpack/ts-node 运行的配置记录
2019/10/11 Javascript
JS中自定义事件的使用与触发操作实例分析
2019/11/01 Javascript
[01:47]2018年度DOTA2最具人气解说-完美盛典
2018/12/16 DOTA
用Python编写一个简单的俄罗斯方块游戏的教程
2015/04/03 Python
详解python eval函数的妙用
2017/11/16 Python
删除python pandas.DataFrame 的多重index实例
2018/06/08 Python
Python开发虚拟环境使用virtualenvwrapper的搭建步骤教程图解
2018/09/19 Python
python 获取一个值在某个区间的指定倍数的值方法
2018/11/12 Python
numpy 声明空数组详解
2019/12/05 Python
Django中F函数的使用示例代码详解
2020/07/06 Python
Piercing Pagoda官网:耳环、戒指、项链、手链等
2020/09/28 全球购物
公司行政经理岗位职责
2013/12/24 职场文书
火车来了教学反思
2014/02/11 职场文书
银行爱岗敬业演讲稿
2014/05/05 职场文书
三八红旗集体先进事迹材料
2014/05/22 职场文书
员工工作能力评语
2014/12/31 职场文书
《1942》观后感
2015/06/08 职场文书
优胜劣汰,强者为王——读《鲁滨逊漂流记》有感
2019/08/15 职场文书
Vue鼠标滚轮滚动切换路由效果的实现方法
2021/08/04 Vue.js
python编程实现清理微信重复缓存文件
2021/11/01 Python
Mysql排查分析慢sql之explain实战案例
2022/04/19 MySQL