Mercurial > tablet-emu
diff src/bin/server.rs @ 19:ba09079686a0
Add support for different endianness between client and server.
author | Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> |
---|---|
date | Thu, 26 Aug 2021 23:43:36 +0200 |
parents | 3f7b7a3ad8fe |
children |
line wrap: on
line diff
--- a/src/bin/server.rs +++ b/src/bin/server.rs @@ -43,17 +43,16 @@ pub fn run_server(address: &str) -> io:: println!("Listening on {:?}", socket); println!("Here is an example client: https://hg.linkmauve.fr/remote-gamepad"); - let mut event: Event = Default::default(); let mut last = Some((0., 0.)); state.set_size(320, 240); loop { - // TODO: Yolo-alignment. - let buf: &mut [u8; 16] = unsafe { std::mem::transmute(&mut event) }; - let (amount, source) = socket.recv_from(buf)?; + let mut buf: [u8; 16] = Default::default(); + let (amount, source) = socket.recv_from(&mut buf)?; if amount != std::mem::size_of::<Event>() { eprintln!("Invalid data length: {}", amount); continue; } + let event: Event = bincode::deserialize(&buf).unwrap(); println!("{:?} from {:?}", event, source); if event.buttons.contains(Buttons::A) { state.select_tool(Key::ButtonToolPen);