Advertisement
Guest User

Untitled

a guest
Oct 24th, 2019
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.04 KB | None | 0 0
  1. use byteorder::BigEndian;
  2. use serde::{Deserialize, Serialize};
  3. use std::io::prelude::*;
  4. use std::net::TcpListener;
  5. use std::net::TcpStream;
  6. use std::thread::sleep;
  7.  
  8. type Result<T> = std::result::Result<T, Box<dyn std::error::Error>>;
  9.  
  10. fn main() -> Result<()> {
  11. let listener = TcpListener::bind("127.0.0.1:25565")?;
  12.  
  13. for stream in listener.incoming() {
  14. match stream {
  15. Ok(mut stream) => {
  16. println!("{:#?}", stream);
  17.  
  18. let mut buf = Vec::new();
  19.  
  20. let _bytes_read = stream.read(&mut buf)?;
  21.  
  22. println!("Client Response: {:#?}", buf);
  23.  
  24. let _bytes_written = stream.write(&pack(&JSON_RESPONSE)?)?;
  25.  
  26. sleep(std::time::Duration::from_millis(50));
  27. }
  28. Err(e) => println!("Could not connect to client! Error: {}", e),
  29. }
  30. }
  31.  
  32. Ok(())
  33. }
  34.  
  35. fn pack<T: Serialize>(data: &T) -> Result<Vec<u8>> {
  36. use bincode::config;
  37.  
  38. let mut config = config();
  39.  
  40. let bytes = config.big_endian().serialize(&data)?;
  41.  
  42. Ok(bytes)
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement