交流群:462197261站长百科站长论坛热门标签收藏本站北冥有鱼 互联网前沿资源第一站 助力全行业互联网+
点击这里给我发消息
  • 当前位置:
  • nodejs socket实现的服务端和客户端功能示例

    本文实例讲述了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程序设计有所帮助。

    您可能感兴趣的文章:

    • 获取本机IP地址的实例(JavaScript / Node.js)
    • nodejs获取本机内网和外网ip地址的实现代码
    • 详解node HTTP请求客户端 - Request
    • nodejs socket服务端和客户端简单通信功能
    • Node.js中的http请求客户端示例(request client)
    • 使用node.js 获取客户端信息代码分享
    • NodeJS实现客户端js加密
    • nodejs(officegen)+vue(axios)在客户端导出word文档的方法
    • nodejs简单实现TCP服务器端和客户端的聊天功能示例
    • node.js中express模块创建服务器和http模块客户端发请求
    • 解决Node.js mysql客户端不支持认证协议引发的问题
    • node获取客户端ip功能简单示例

    广而告之:
    热门推荐:
    js和C# 时间日期格式转换的简单实例

    下午在搞MVC和EXTJS的日期格式互相转换遇到了问题,我们从.NET服务器端序列化一个DateTime对象的结果是一个字符串格式,如 '/Date(1335258540000)/' 这样的字串。 整数1335258540000实际上是一个1970 年 1 月 1 日 00:00:00至这个DateTime中间间隔的毫秒数。通过javascript用ev···

    医疗seo行业比较难做的原因就是特别注重用户体验优化与权威内容

    可以说,医疗SEO是目前最难做的行业,在这里,我说为什么医疗SEO很难做,我们应该如何分析医疗SEO。  一、必须特别考虑内容  许多医学网站更新了如何治疗某种疾病的内容,以及心脏、肝脏、脾脏、肺部和肾脏等专业病例名称或词语。事实上,搜索引擎长期以···

    微信小程序实现拍照画布指定区域生成图片

    最近写识别行驶证功能,点击拍照把指定区域截取,生成图片功能。 系统相机。该组件是原生组件,使用时请注意相关限制。 扫码二维码功能,需升级微信客户端至6.7.3。 微信小程序Camera相机地址 我们看下效果: 1、首先生成一个CanvasContext: /** * 生命周期函数--监听页面···

    Dreamweaver怎么设计一款拼图游戏?

    Dreamweaver中想要将一幅画分割成几份在框内进行拼图游戏;当靠近真确的拼图时自动吸附,该怎么制作这个动画效果呢?下面我们就来看看详细的教程。 软件名称: Adobe Dreamweaver CS6 简体中文破解补丁(附官方主程序) 软件大小: 1.2MB 更新时间: 2013-03-24 1、在软件中···

    SQL Server误区30日谈 第17天 有关页校验和的误区

    其实我之前已经有文章详细解释了页校验和:How to tell if the IO subsystem is causing corruptions? 误区 #17:几个有关页校验和的误区 坊间流传的基本是错误的 17 a)页校验和(Page CheckSum)在从SQL Server 2000或7.0升级上来之后自动开启 其实不是,从旧的实例升级上···

    AngularJS基础 ng-paste 指令简单示例

    AngularJS ng-paste 指令 AngularJS 实例 文本被粘贴时执行表达式: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script> </head> <bo···

    asp.net中生成缩略图并添加版权实例代码

    复制代码 代码如下://定义image类的对象Drawing.Image image,newimage;//图片路径protected string imagePath;//图片类型protected string imageType;//图片名称protected string imageName;//提供一个回调方法,用于确定Image对象在执行生成缩略图操作时何时提前取消执行···

    php中try catch捕获异常实例详解

    本文实例讲述了php中try catch捕获异常。分享给大家供大家参考。具体方法分析如下: php中try catch可以帮助我们捕获程序代码的异常了,这样我们可以很好的处理一些不必要的错误了,感兴趣的朋友可以一起来看看。 PHP中try{}catch{}语句概述 PHP5添加了类似于其它语言的异常处···

    yii2实现分页,带搜索的分页功能示例

    一、模型配置 事例会用到三个models。文章类别表和文章表用gii生成下即可,最后一个是搜索验证模型。其中,只讲下一个联表和搜索验证。其他不用操作。 1.文章表关联 <?php //...other code //关联 public function getCate(){ return $this->hasOne(ArticleCa···

    phpmyadmin 常用选项设置详解版

    config.inc.php全部内容如下:(以phpmyadmin2.5.4为例) <?php/* $Id: config.inc.php,v 1.204.2.1 2003/10/10 14:24:24 nijel Exp $ */// vim: expandtab sw=4 ts=4 sts=4: /*** phpMyAdmin Configuration File** All directives are explained in Documentation.h···