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写的一个简单项目打包工具
May 11 NodeJs
nodejs创建web服务器之hello world程序
Aug 20 NodeJs
浅谈Nodejs观察者模式
Oct 13 NodeJs
深入nodejs中流(stream)的理解
Mar 27 NodeJs
NodeJS实现图片上传代码(Express)
Jun 30 NodeJs
NodeJS设计模式总结【单例模式,适配器模式,装饰模式,观察者模式】
Sep 06 NodeJs
nodejs中密码加密处理操作详解
Mar 20 NodeJs
对mac下nodejs 更新到最新版本的最新方法(推荐)
May 17 NodeJs
nodejs的路径问题的解决
Jun 30 NodeJs
Nodejs调用Dll模块的方法
Sep 17 NodeJs
webpack打包nodejs项目的方法
Sep 26 NodeJs
NodeJs crypto加密制作token的实现代码
Nov 15 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 set_time_limit(0) 设置程序执行时间的函数
2010/05/26 PHP
php中的ini配置原理详解
2014/10/14 PHP
php使用PDO方法详解
2014/12/27 PHP
PHP、Java des加密解密实例
2015/04/27 PHP
Apache服务器下防止图片盗链的办法
2015/07/06 PHP
javascript getElementsByClassName函数
2010/04/01 Javascript
博客侧边栏模块跟随滚动条滑动固定效果的实现方法(js+jquery等)
2013/03/24 Javascript
获取元素距离浏览器周边的位置的方法getBoundingClientRect
2013/04/17 Javascript
简单的js图片轮换代码(js图片轮播)
2014/05/06 Javascript
Bootstrap入门书籍之(一)排版
2016/02/17 Javascript
JS定义类的六种方式详解
2016/05/12 Javascript
JS实现复选框的全选和批量删除功能
2017/04/05 Javascript
利用express启动一个server服务的方法
2017/09/17 Javascript
JQuery Ajax执行跨域请求数据的解决方案
2018/12/10 jQuery
layui输入框中只允许输入整数的实现方法
2019/09/18 Javascript
[00:48]完美“圣”典2016风云人物:xiao8宣传片
2016/11/30 DOTA
python实现数通设备tftp备份配置文件示例
2014/04/02 Python
python的tkinter布局之简单的聊天窗口实现方法
2014/09/03 Python
python开发之文件操作用法实例
2015/11/13 Python
Python缩进和冒号详解
2016/06/01 Python
利用python爬取软考试题之ip自动代理
2017/03/28 Python
Python3简单实例计算同花的概率代码
2017/12/06 Python
Python设计模式之备忘录模式原理与用法详解
2019/01/15 Python
Pytorch 的损失函数Loss function使用详解
2020/01/02 Python
Python configparser模块常用方法解析
2020/05/22 Python
CSS3 选择器 属性选择器介绍
2012/01/21 HTML / CSS
CSS3制作ajax loader icon实现思路及代码
2013/08/25 HTML / CSS
世界领先的26岁以下学生和青少年旅行预订网站:StudentUniverse
2018/07/01 全球购物
澳大利亚波希米亚风时尚品牌:Tree of Life
2019/09/15 全球购物
澳大利亚领先的在线礼品网站:Gifts Australia
2020/08/15 全球购物
企业管理专业个人求职信范文
2013/09/24 职场文书
旅游与酒店管理的自我评价分享
2013/11/03 职场文书
求职推荐信范文
2013/12/01 职场文书
茶叶店创业计划书范文
2014/01/19 职场文书
竞争上岗演讲稿范文
2014/05/12 职场文书
pytorch 中nn.Dropout的使用说明
2021/05/20 Python