let filesend = fs.createReadStream('./flex1.zip', 'utf8')
//let filesend = fs.createReadStream('./flex1.zip')
let fileget = fs.createWriteStream('./test/flex1.zip', 'utf8')
//let fileget = fs.createWriteStream('./test/flex1.zip')
fileget.on('finish', function() {
console.log('getover')
})
net.createServer(function(socket) {
socket.pipe(fileget)
socket.on('error', function(err) {
console.log(err.message);
});
}).listen('18800', function() {
console.log('server_open')
});
let client = new net.Socket();
client.connect('18800', '127.0.0.1', function() {
filesend.pipe(client);
});
当我调用CreateReadStream和createWriteStream并使用' utf8'设置编码时,我无法获得正确的文件,但是如果我没有设置编码,我可以得到正确的文件。 所有上述情况都发生在仅使用Socket
的情况下答案 0 :(得分:0)
如果使用createReadStream
createWriteStream
和utf8
可以正常使用,那么使用套接字或http的天气没有区别。
问题仅在于您的内容需要读/写,以及在插座时您要更改的内容。我可以看到filesend.pipe(client);
如果您可以控制/打印client
,并且可以看到它是您想要的,那么只需在没有utf8
的情况下编写它,因为您不需要。此外,如果您的客户端对象很好=>(其属性没有无限递归),像utf8
这样的编码也没有问题