eculocate

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

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 }