main.rs (838B)
1 use std::{ 2 io::{Read, Write}, 3 net::TcpListener, 4 }; 5 6 fn main() { 7 let binary = std::fs::read("./firmware.bin").unwrap(); 8 let binary_crc = crc32fast::hash(&binary); 9 10 println!("BINARY_SIZE: {}", binary.len()); 11 println!("BINARY CRC32: {}", binary_crc); 12 13 let listener = TcpListener::bind("0.0.0.0:6969").unwrap(); 14 for stream in listener.incoming() { 15 println!("Connection"); 16 let mut stream = stream.unwrap(); 17 18 _ = stream.write_all(&(binary.len() as u32).to_le_bytes()); 19 _ = stream.write_all(&binary_crc.to_le_bytes()); 20 21 let chunks = binary.chunks(4096 * 2); 22 let mut buf = [0; 1]; 23 for chunk in chunks { 24 println!("Writing: {}", chunk.len()); 25 26 _ = stream.write_all(chunk); 27 _ = stream.read_exact(&mut buf); 28 } 29 } 30 }