码迷,mamicode.com
首页 > Web开发 > 详细

对node.js的net模块的一个测试

时间:2015-12-03 19:07:03      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:

抄表系统在接收电表发回的数据的时候,发现有些电表发回的数据没有被socket端口接收到,最后等待时间耗尽,留下了指令超时的记录。因为是在进行虚拟的测试,因此可以根据对服务器发的tcp报文进行分析,分析结果发现在发出抄表指令之后1s之内,虚拟的电表就返回了抄表结果,然后socket服务器没有收到这个记录。

因此做了这个测试,来测试抄表时间和抄表数量对于socket服务器有什么影响。

服务器端:

var net = require(‘net‘);
var fs = require(‘fs‘);

var server = net.createServer(function (socket) {
    socket.on(‘data‘, function (data) {
        
        data = JSON.parse(data);
        // console.log(data.i + ‘ : ‘ + data.curr);
        var record = data.i + ‘ : ‘ + data.curr + ‘\r\n‘;
        fs.appendFile("./服务器日志.txt", record, function(err) {
            if (err) {
                console.log("指令记录失败:" + record);
            }
        });

        var time = new Date();
        var current = data.i + ‘ : ‘ + time.getFullYear() + "-" + (time.getMonth() + 1) + "-" + time.getDate() + " " + time.getHours() + ":" + time.getMinutes() + ":" + time.getSeconds() + ":" + time.getMilliseconds() + " 服务器端 ====>> 客户端" ;
        socket.write(current);
    });
    socket.on(‘end‘,function () {
        console.log(‘连接断开‘);
    });
    socket.on(‘error‘,function () {
        console.log(‘连接断开‘);
    })
});

server.listen(8814, function() {
    console.log(‘server start!‘);
});

客户端:

var net = require(‘net‘);
var fs = require(‘fs‘);

var i = 1;

var client = net.connect({port:8814}, function() {

    setInterval(emmit, 500);
    // client.end();
    
});

function emmit() {
    if (i <= 4000) {
        console.log(i);
        var time = new Date();
        var current =  time.getFullYear() + "-" + (time.getMonth() + 1) + "-" + time.getDate() + " " + time.getHours() + ":" + time.getMinutes() + ":" + time.getSeconds() + ":" + time.getMilliseconds()  + " 客户端 ====>> 服务器端" ;
        var data = {};
        data.curr = current;
        data.i = i;
        data = JSON.stringify(data);
        client.write(data);
    };
    i++;
}

client.on(‘data‘, function(data) {
    // console.log(data.toString());
    var record = data.toString() + ‘\r\n‘;
    fs.appendFile("./客户端日志.txt", record, function(err) {
        if (err) {
            console.log("指令记录失败:" + record);
        }
    });
});

client.on(‘end‘, function() {
    console.log(‘client disconnected‘);
});

client.on(‘error‘, function() {
    console.log(‘server error!‘);
});

 

对node.js的net模块的一个测试

标签:

原文地址:http://www.cnblogs.com/lswit/p/5016914.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!