zoukankan      html  css  js  c++  java
  • Node学习笔记:建立TCP服务器和客户端之间的通信

    结构:

    socket是应用层和传输层的桥梁。(传输层之上的协议所涉及的数据都是在本机处理的,并没进入网络中)

    涉及数据:

    socket所涉及的数据是报文,是明文。

    作用:

    建立长久链接,供网络上的两个进程通信。

    下面是Tcp服务端的代码:

    var net = require('net');//模块引入
    var listenPort = 8080;//监听端口
    // 创建socket服务端,下面是对客户端的处理
    var server = net.createServer(function(socket){
     socket.setEncoding('binary');
     socket.on('data',function(data){//接收到客户端传来的数据
      console.log('client send:' + data);
     });
    
     socket.write('Hello client!
    ');//写入数据,客户端可以接收
    
     socket.on('error',function(exception){//数据错误事件,比如客户端断开连接
      console.log('socket error:' + exception);
      socket.end();//断开服务器
     });
    
     socket.on('close',function(data){ //客户端关闭事件,断开连接
      console.log('client closed!');
     });
    }).listen(listenPort);
    
    //下面是服务器监听事件
    server.on('listening',function(){//服务器开启 开始监听端口
     console.log("server listening:" + server.address().port);
    });
    
    server.on('connection',function(){//服务器和客户端建立起联系时执行
     console.log("server 已经连接");
    });
    
    server.on("error",function(exception){//服务器错误事件
     console.log("server error:" + exception);
    });

    下面是TCP客户端的代码:

    var net = require('net');
    var port = 8080;
    var host = '127.0.0.1';
    var client= new net.Socket();//创建socket客户端
    client.setEncoding('binary');
    client.connect(port,host,function(){//连接到服务端
        client.write('hello server');//向端口写入数据到达服务端
    });
    client.on('data',function(data){
         console.log('from server:'+ data);//得到服务端返回来的数据
    });
    client.on('error',function(error){
         console.log('error:'+error);//错误出现之后关闭连接
         client.destory();
    });
    client.on('close',function(){
         console.log('Connection closed');//正常关闭连接
    });

    运行两个node的结果:

  • 相关阅读:
    Hibernate知识回顾
    Lucene搜索过程的核心类
    JSP知识回顾
    Java Swing 知识回顾
    Spring知识回顾
    javaDocking 学习
    Lucene搜索范围
    MINA 学习
    java 阿拉伯人民币转换为中文
    oracle提高查询效率方法
  • 原文地址:https://www.cnblogs.com/xiaozhumaopao/p/10308624.html
Copyright © 2011-2022 走看看