use std::{ io::{Read, Write}, net::TcpStream, }; fn main() { let mut tcp = TcpStream::connect("127.0.0.1:6666").unwrap(); let query = r#"{"tcp": [80, 443], "udp":[53]}"#; let len = query.len() as u32; tcp.write_all(&len.to_be_bytes()).unwrap(); tcp.write_all(query.as_bytes()).unwrap(); let mut size_bytes = [0u8; 4]; tcp.read_exact(&mut size_bytes).unwrap(); let size = u32::from_be_bytes(size_bytes); let mut response = vec![0; size as usize]; tcp.read_exact(&mut response).unwrap(); println!("{}", unsafe { String::from_utf8_unchecked(response) }); }