Я пытаюсь реализовать одноранговую передачу видео. Итак, что я сделал
FileInputStream input = new FileInputStream(new File(UPLOAD_FILE_PATH));
byte[] fileArray = new byte[4095];
int byteSend;
while((byteSend = input.read(fileArray)) != -1) {
//System.out.println(String.valueOf(fileArray));
StringBuffer content = new StringBuffer();
content.append(new String(fileArray));
JSONObject obj = new JSONObject();
obj.put("id",i++);
obj.put("FileArrray",content);
obj.put("byteSend",byteSend);
mSocket.emit("mp4", obj);
byteSendTracker = byteSendTracker+byteSend;
System.out.println("send"+Arrays.toString(fileArray));
// output.write(fileArray,0,byteSend);
Thread.sleep(10);
}
output.flush();
input.close();
Итак, что я сделал, это отправил этот FileArrray в виде строкового буфера на узел socket.io и из socket.io на другой подключенный клиент
socket.on("mp4",function(data){
console.log(data.id);
socket.broadcast.emit("getFile",data);
});
, затем на приемники сторона, я просто пишу файл, как показано ниже:
JSONObject obj = new JSONObject(String.valueOf(args[0]));
output.write(obj.getString("FileArrray").getBytes(),0,Integer.parseInt(obj.getString("byteSend")));
я пытался отправить 240 КБ видео mp4, когда он получил загруженный файл поврежден. Может ли кто-нибудь указать мне правильное направление, чтобы сделать это.