zoukankan      html  css  js  c++  java
  • Node.js使用TCP通讯

    原文地址:https://www.cnblogs.com/ay-a/p/9822057.html

    Node.js 的 net 模块可以方便的创建TCP 服务,,以下是使用 net 模块创建的tcp 服务和客户端的一个简单例子。

    一、创建TCP Server

    var net = require('net');
    var tcp_server = net.createServer();  // 创建 tcp server
    
    var Sockets = {};
    var SocketID = 1;
    
    // 监听 端口
    tcp_server.listen(5678,function (){
        console.log('tcp_server listening 5678');
    });
    
    // 处理客户端连接
    tcp_server.on('connection',function (socket){
        console.log(socket.address());
        Sockets[SocketID] =socket;
        SocketID++;
        DealConnect(socket)
    })
    
    tcp_server.on('error', function (){
        console.log('tcp_server error!');
    })
    
    tcp_server.on('close', function () {
        console.log('tcp_server close!');
    })
    
    
    // 处理每个客户端消息
    function DealConnect(socket){
    
        socket.on('data',function(data){
            data = data.toString();
            // 向所有客户端广播消息
           for(var i in Sockets){
               Sockets[i].write(data);
           }
            // socket.write(data);
            console.log('received data %s',data);
        })
    
        // 客户端正常断开时执行
        socket.on('close', function () {
            console.log('client disconneted!');
        })
    // 客户端正异断开时执行
        socket.on("error", function (err) {
            console.log('client error disconneted!');
        });
    }

    二、创建 TCP Client

    var net = require('net');
    
    // 指定连接的tcp server ip,端口
    var options = {
        host : '172.30.20.10',  
        port : 5678
    }
    
    var tcp_client = net.Socket();
    
    // 连接 tcp server
    tcp_client.connect(options,function(){
        console.log('connected to Server');
        tcp_client.write('I am tcp_client of node!');
    })
    
    // 接收数据
    tcp_client.on('data',function(data){
        console.log('received data: %s from server', data.toString());
    })
    
    tcp_client.on('end',function(){
        console.log('data end!');
    })
    
    tcp_client.on('error', function () {
        console.log('tcp_client error!');
    })
  • 相关阅读:
    Windows 设置自启动计划任务(非登录启动)
    C# 计算代码执行时间
    使用RabbitMQ做数据接收和处理时,自动关闭
    Winform 连接Web Service 记录
    【转】DataTable 中数据筛选
    更改数据库管理员sa账户密码
    数据库显示可疑的修复方法
    SQL SERVER 2008 删除某个数据库的所有连接进程
    数据库自动备份还原成新库脚本
    关于BindingSource 组件的一些用法
  • 原文地址:https://www.cnblogs.com/caiyt/p/10320762.html
Copyright © 2011-2022 走看看