2015-05-06 104 views
1

我有一台服务器正在从客户端设备接收数据。客户端将数据发送到服务器,并且它总是最多3个字符,例如*46如何检查数据是否完整

如何检查数据是否以星号和2个字符结尾,以便我知道这是来自客户端的完整数据?

此外,该设备可能会在数据末尾添加一个换行符,那么如何检查数据末尾是否有换行符?

这是到目前为止我的代码:

var net = require('net'); 

var server = net.createServer(function(socket) { 
    socket.on('data', function(data) { 
     var receivedata = data.toString(); 
     // How to check if received data is complete, i.e. ending in 3 characters, *23 
    }); 
}); 

回答

0

使用正则表达式。举例:

var str = "Hello wor*23"; 
if(str.match(/\*[0-9][0-9]$/)){ 
    console.log("Hello"); 
} 
else{ 
    console.log("Data not proper"); 
} 

它检查最后3个值是否为* number number

0

你可能只要数据是流的数据块,你需要等待end事件,以获得完整的数据寻找这个

var net = require('net'); 

var server = net.createServer(function(socket) { 
    var receivedata = ""; 
    socket.on('data', function(data) { 
     receivedata += data.toString(); 
    }); 
    socket.on('end', function() { 
     console.log(receivedata); 
    }); 
}); 

注意未经测试