• 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!');
    })
  • 相关阅读:
    Siege 3.0 正式版发布,压力测试工具
    Pomm 1.1.2 发布,专为 PG 设计的 ORM 框架
    Whonix 0.5.6 发布,匿名通用操作系统
    国内开源 java cms,Jspxcms 2.0 发布
    EZNamespaceExtensions.Net v2013增加对上下文菜单、缩略图、图标、属性表的支持
    GNU Guile 2.0.9 发布,Scheme 实现
    jdao 1.0.4 发布 轻量级的orm工具包
    OpenSearchServer 1.4 RC4 发布
    Percona Server for MySQL 5.5.3030.2
    Samba 4.0.5 发布
  • 原文地址:https://www.cnblogs.com/caiyt/p/10320762.html
Copyright © 2020-2023  润新知