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服务器(7):阻塞操作的实现
Dec 18 NodeJs
基于nodejs+express(4.x+)实现文件上传功能
Nov 23 NodeJs
详解nodejs与javascript中的aes加密
May 22 NodeJs
浅析Nodejs npm常用命令
Jun 14 NodeJs
NodeJS仿WebApi路由示例
Feb 28 NodeJs
详解Nodejs之npm&package.json
Jun 15 NodeJs
NodeJS实现图片上传代码(Express)
Jun 30 NodeJs
nodejs简单实现TCP服务器端和客户端的聊天功能示例
Jan 04 NodeJs
Nodejs把接收图片base64格式保存为文件存储到服务器上
Sep 26 NodeJs
详解NodeJs项目 CentOs linux服务器线上部署
Sep 16 NodeJs
nodeJS与MySQL实现分页数据以及倒序数据
Jun 05 NodeJs
在NodeJs中使用node-schedule增加定时器任务的方法
Jun 08 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
header中Content-Disposition的作用与使用方法
2012/06/13 PHP
使用php记录用户通过搜索引擎进网站的关键词
2014/02/13 PHP
php使用imagick模块实现图片缩放、裁剪、压缩示例
2014/04/17 PHP
PHP中使用匿名函数操作数据库的例子
2014/11/17 PHP
老生常谈php 正则中的i,m,s,x,e分别表示什么
2017/03/02 PHP
php session_decode函数用法讲解
2019/05/26 PHP
浅析PHP中的 inet_pton 网络函数
2019/12/16 PHP
一个js封装的不错的选项卡效果代码
2008/02/15 Javascript
jQuery Validation实例代码 让验证变得如此容易
2010/10/18 Javascript
jquery mobile实现拨打电话功能的几种方法
2013/08/05 Javascript
javascript中数组的多种定义方法和常用函数简介
2014/05/09 Javascript
JQuery实现防止退格键返回的方法
2015/02/12 Javascript
jQuery代码实现发展历程时间轴特效
2015/07/30 Javascript
正则表达式替换html元素属性的方法
2016/11/26 Javascript
详谈js原型继承的一些问题
2017/09/06 Javascript
JS库之wow.js使用方法
2017/09/14 Javascript
JS实现倒序输出的几种常用方法示例
2019/04/13 Javascript
js实现一个简易计算器
2020/03/30 Javascript
vue图片加载失败时用默认图片替换的方法
2019/08/29 Javascript
javascript实现时间日期的格式化的方法汇总
2020/08/06 Javascript
vue中element 的upload组件发送请求给后端操作
2020/09/07 Javascript
原生js+css实现tab切换功能
2020/09/17 Javascript
vue3.0 加载json的方法(非ajax)
2020/10/26 Javascript
Windows下搭建python开发环境详细步骤
2020/07/20 Python
DataFrame中去除指定列为空的行方法
2018/04/08 Python
对python遍历文件夹中的所有jpg文件的实例详解
2018/12/08 Python
Django异步任务之Celery的基本使用
2019/03/23 Python
Django中多种重定向方法使用详解
2019/07/17 Python
pandas 对日期类型数据的处理方法详解
2019/08/08 Python
python利用JMeter测试Tornado的多线程
2020/01/12 Python
python rolling regression. 使用 Python 实现滚动回归操作
2020/06/08 Python
pytorch 把图片数据转化成tensor的操作
2021/03/04 Python
世界上最受欢迎的花店:1-800-Flowers.com
2020/06/01 全球购物
澳大利亚领先的内衣店:Bendon Lingerie澳大利亚
2020/05/15 全球购物
2015年老干部工作总结
2015/04/23 职场文书
详细介绍Java中的CyclicBarrier
2022/04/13 Java/Android