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的模块写法入门(实例代码)
Mar 07 NodeJs
NodeJs中的非阻塞方法介绍
Jun 05 NodeJs
Nodejs初级阶段之express
Nov 23 NodeJs
浅谈Nodejs中的作用域问题
Dec 26 NodeJs
详解nodejs微信公众号开发——5.素材管理接口
Apr 11 NodeJs
Nodejs--post的公式详解
Apr 29 NodeJs
NodeJS使用七牛云存储上传文件的方法
Jul 24 NodeJs
nodejs对express中next函数的一些理解
Sep 08 NodeJs
webstorm中配置nodejs环境及npm的实例
May 15 NodeJs
Nodejs中怎么实现函数的串行执行
Mar 02 NodeJs
nodejs实现用户登录路由功能
May 22 NodeJs
通过实例了解Nodejs模块系统及require机制
Jul 16 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模板引擎SMARTY
2006/10/09 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十一)
2014/06/25 PHP
PHP通过反射动态加载第三方类和获得类源码的实例
2015/11/27 PHP
PHP微信H5支付开发实例
2018/07/25 PHP
MacOS下PHP7.1升级到PHP7.4.15的方法
2021/02/22 PHP
JS Array对象入门分析
2008/10/30 Javascript
MooTools 1.2介绍
2009/09/14 Javascript
js location.replace与location.reload的区别
2010/09/08 Javascript
Javascript实现仿WebQQ界面的“浮云”兼容 IE7以上版本及FF
2011/04/27 Javascript
JavaScript—window对象使用示例
2013/12/09 Javascript
js生成验证码并直接在前端判断
2015/05/15 Javascript
Node.js操作redis实现添加查询功能
2017/05/25 Javascript
jQuery+Ajax请求本地数据加载商品列表页并跳转详情页的实现方法
2017/07/12 jQuery
基于JavaScript实现新增内容滚动播放效果附完整代码
2017/08/24 Javascript
Vue组件通信之Bus的具体使用
2017/12/28 Javascript
JavaScript学习总结(一) ECMAScript、BOM、DOM(核心、浏览器对象模型与文档对象模型)
2018/01/07 Javascript
jQuery实现文件编码成base64并通过AJAX上传的方法
2018/04/12 jQuery
原生JS实现的简单轮播图功能【适合新手】
2018/08/17 Javascript
js的Object.assign用法示例分析
2020/03/05 Javascript
js实现文字头像的生成代码
2020/03/07 Javascript
浅谈实现在线预览PDF的几种解决办法
2020/08/10 Javascript
原生js中运算符及流程控制示例详解
2021/01/05 Javascript
Pyhton中防止SQL注入的方法
2015/02/05 Python
python3使用urllib模块制作网络爬虫
2016/04/08 Python
python实现自动网页截图并裁剪图片
2018/07/30 Python
TensorFlow内存管理bfc算法实例
2020/02/03 Python
Tensorflow中的dropout的使用方法
2020/03/13 Python
Python搭建Keras CNN模型破解网站验证码的实现
2020/04/07 Python
Python如何测试stdout输出
2020/08/10 Python
Python爬虫回测股票的实例讲解
2021/01/22 Python
介绍一下javax.servlet.Servlet接口及其主要方法
2015/11/30 面试题
母亲七十大寿答谢词
2014/01/18 职场文书
元旦晚会邀请函
2014/02/01 职场文书
教师自我剖析材料(四风问题)
2014/09/30 职场文书
2016年情人节问候语
2015/11/11 职场文书
html用代码制作虚线框怎么做? dw制作虚线圆圈的技巧
2022/12/24 HTML / CSS