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
///
///```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 *;
pub use KcpClient;