fn dumb() { let mut sock = std::net::TcpStream::connect("127.0.0.1:48999").unwrap(); use std::io::{Read, Write}; let now = std::time::Instant::now(); for _ in 0..5000 { let mut buf = [0; 50]; sock.write_all(b"\ \0\0(\0\0\0\x7f\0\0\x01\x01\x01\0\0\x01\x02\x03\x04\x05\x06S\x03\x02\0\ \x05\0\x0c\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x04\0\0\0\xa4\xe0\xfbD").unwrap(); sock.read_exact(&mut buf).unwrap(); } println!("dumb: {:?}", now.elapsed()); } fn with_client() { let timeout = ads::Timeouts::new(std::time::Duration::from_secs(1)); let client = ads::Client::new("127.0.0.1:48999", timeout, ads::Source::Auto).unwrap(); let dev = client.device(ads::AmsAddr::new([1, 2, 3, 4, 5, 6].into(), 851)); let mut data = [0; 4]; let now = std::time::Instant::now(); for _ in 0..5000 { dev.read(0x4020, 0, &mut data).unwrap(); } println!("client: {:?}", now.elapsed()); } fn main() { dumb(); with_client(); }