1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
pub mod kcp_client; pub mod kcp; /// ///```rust /// use kcpclient::*; /// use std::error::Error; /// use std::sync::Arc; /// use std::thread; /// use std::sync::atomic::{AtomicBool, Ordering}; /// use std::thread::sleep; /// use std::time::Duration; /// /// /// fn main() { /// let mut config = KcpConfig::default(); /// config.nodelay = Some(KcpNoDelayConfig::fastest()); /// /// let kcp_client = KcpClient::connect("127.0.0.1:5555", config).unwrap(); /// kcp_client.init_conv().unwrap(); /// /// let is_run =Arc::new( AtomicBool::new(true)); /// let kcp_client = Arc::new(kcp_client); /// let up = kcp_client.clone(); /// let run_arc=is_run.clone(); /// let th=thread::spawn(move || { /// while run_arc.load(Ordering::Acquire) { /// up.update().unwrap(); /// sleep(Duration::from_millis(10)); /// } /// }); /// /// for _ in 0..100 { /// kcp_client.send(b"123123123123").unwrap(); /// let res = kcp_client.recv(); /// match res { /// Ok(data)=>{ /// println!("{}", String::from_utf8_lossy(&data)); /// }, /// Err(er)=>{ /// println!("{}",er); /// } /// } /// } /// /// is_run.store(false,Ordering::Release); /// th.join().unwrap(); /// } ///``` pub use kcp::kcp_config::*; pub use kcp_client::client::KcpClient;