0
我有从客户端(设备)逐包发送的二进制映像文件。我该如何妥善处理这个问题并将其保存到数据库中,以防止将来在转换后在图像上有条纹线。如何正确处理来自套接字的传入二进制数据
var net = require('net');
var server = net.createServer(function(socket){
socket.on('end', function() {
// somstuffhere();
});
socket.on('data',function(data){
var revdata += data.toString('binary'); // receive first the buffer data.
var checkdata = revdata.substr(-5);
if(checkdata.substr(0,1) == '*'){
var hexdata = new Buffer(revdata, 'ascii').toString('hex');
// After converting to hex.Save database here..
}else{
revdata += data.toString('binary');
}
});
server.listen(3020,'127.0.0.1', function() {
console.log("server is up!");
});
列字段的数据类型是VARCHAR(3072).
这是否有意义?
你不能“assum并[e]接收二值图像的完整的1个数据”。这是你的第一个问题。 TCP是一种字节流,而不是消息传递协议。至于3072是否足够大,您的图片只有您可能知道。 – EJP
1.没有人会跟随链接。 2.构成问题一部分的材料必须包含在问题中。 3.我已经说过,只有你知道你的图像有多大。但是我会为此使用Blob,而不是带编码的'VARCHAR'。 – EJP
如果你使用Blob,并且不要搞乱任何编码,数据将被保存为二进制。 – EJP