我正在尝试将图像从 java TCP 客户端发送到 Node.js TCP 服务器我尝试过:发送二进制数据,发送 base64 编码的二进制数据,发送 utf-8 编码的字符串,目前没有任何效果,我总是得到数据并创建图像(使用 fs),但它总是损坏。这是我的代码:
爪哇客户端:
import java.util.*;
import java.io.*;
import java.net.Socket;
public class client{
public static void main(String[] args) throws Exception {
Socket client = new Socket("localhost",8080);
Scanner scanner = new Scanner(System.in);
String path= scanner.nextLine();
FileInputStream fis = new FileInputStream(path);
byte[] buffer = new byte[fis.available()];
fis.read(buffer);
buffer= Base64.getEncoder().encode(buffer);
System.out.println(buffer.length);
ObjectOutputStream oos= new ObjectOutputStream(client.getOutputStream());
oos.writeObject(buffer);
client.close();
}
}
Node.js 服务器:
var fs = require('fs');
var net = require('net');
var sockets = [];
var server=net.createServer().listen(8080,"localhost");
server.on('connection', function(socket){
console.log('Someone connected.');
sockets.push(socket);
var imageData;
socket.on('data',function(data){
imageData+= Buffer.from(data, 'base64');
});
socket.on('end',function(){
console.log(imageData.length)
fs.writeFileSync(new Date()+".png", imageData, function (err) {
if (err) throw err;
else console.log('Saved!');
});
});
socket.on('close',function(){
console.log("Someone disconnected.");
});
});
请我需要帮助,这是我第四次提出这个问题,但没有人回答我,或者他们说了一些没有帮助的事情并给了我 -1。
温温酱
杨魅力
相关分类