VIP用户交流群:462197261热门标签收藏本站北冥有鱼 互联网前沿资源第一站 助力全行业互联网+
在线客服:78895949
  • 当前位置:
  • 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功能简单示例

    广而告之:
    热门推荐:
    vue中实现左右联动的效果

    这里的坑还是蛮多的,花了一个多小时,才理清楚。  做一下笔记,以便于复习。 首先呢,需要让左右的布局都可以滚动,这里使用了betterScroll npm i better-scroll import BScroll from 'better-scroll' methods: { _initScroll () { this.menuScroll = new BScroll···

    根据ip调用新浪api获取城市名并转成拼音

    功能: 1,获取当前IP地址,2,调用新浪API,获取到当前城市。3,将中文转换为拼音后跳转。 复制代码 代码如下:<?php include './pinyin.php'; //获取当前ipfunction getIp(){  $onlineip='';  if(getenv('HTTP_CLIENT_IP')&&strcas···

    HTML打折计算价格实现原理与脚本代码

    复制代码 代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <head> <title>打折后价格计算</title> <!-- 设置计算价格事件···

    jQuery轻量级表单模型验证插件

    JQuery插件,轻量级表单模型验证,供大家参考,具体内容如下 附上源码和Demo段 var validataForm = (function(model) { model.Key = "[data-required='true']"; model.ElementList = new Array(); model.FunctionDictionary = new Dictionary(); model.ToastrCustom ···

    css3的过滤效果简单实例

    上面的图片就是css3新特性的滤镜效果,学会了这些那么我们这群爱美爱帅的大web是不是就可以完美的用代码实现照片美化了捏~~ 好,咱们先把照片后面的白框实现, XML/HTML Code复制内容到剪贴板 <style>      #div1{          ···

    全面剖析.Net环境下的缓存技术

    一、 概念 1.1   缓存能解决的问题 · 性能——将相应数据存储起来以避免数据的重复创建、处理和传输,可有效提高性能。比如将不改变的数据缓存起来,例如国家列表等,这样能明显提高web程序的反应速度; · 稳定性——同一个应用中,对同一数据、逻辑功能和用户界面···

    非常好用的两个PHP函数 serialize()和unserialize()

    今天,在做一个关于PING服务的东西,由于不想把ping服务地址放进数据库中,那样不好,ping服务本来不是一个效率不高的事,再放进数据库中,不但更加降低了程序的效率,还给服务器带来不必要的损耗,所以,想办法所ping服务地址用数组的方式放进了.conf文件中,才开始的设···

    vue使用vue-cli快速创建工程

    本文介绍了vue使用vue-cli快速创建工程,分享给大家,具体如下: vue-cli安装 npm i vue-cli -g vue init webpack-simple vue-todos vue-cli 是一个官方发布 vue.js 项目脚手架,使用 vue-cli 可以快速创建 vue 项目。 -g代表全局安装。 i就是install的缩写。 其中webpack-···

    浅谈react-router@4.0 使用方法和源码分析

    react-router-dom@4.3.0 || react-router@4.4.1 react-router 使用方法 配置 router.js import React, { Component } from 'react'; import { Switch, Route } from 'react-router-dom'; const router = [{ path: '/', exact: true, component:importPath({ loader···

    浅谈js之字面量、对象字面量的访问、关键字in的用法

    一:字面量含义 字面量表示如何表达这个值,一般除去表达式,给变量赋值时,等号右边都可以认为是字面量。 字面量分为字符串字面量(string literal )、数组字面量(array literal)和 对象字面量(object literal),另外还有函数字面量(function literal)。 示例: var test="hell···