pub fn create_tcp_client<T>(addr: &str, client_name: &str) -> TCPMsgClient<T>
Examples found in repository?
examples/simple_connection.rs (line 39)
38fn client() {
39 let client = create_tcp_client("127.0.0.1:6666", "client");
40 let client_task = client.start_client(|msg: u32| {
41 println!("{}", msg);
42 if msg < 20 {
43 vec![msg + 1]
44 } else {
45 std::process::exit(0);
46 }
47 });
48 tokio::run(client_task);
49}
More examples
examples/transmit_multiple_structs.rs (line 69)
68fn client() {
69 let client = create_tcp_client("127.0.0.1:6666", "client");
70 // x is used to test whether the closure can change the outer mutable variable
71 let mut x: u32 = 0;
72 let client_task = client.start_client(move |msg: Message| {
73 println!("{:?}", msg);
74 match msg {
75 Message::VecOfF32msg(mut vec_of_32) => {
76 x += 1;
77 vec_of_32.vec.push(1);
78 vec![Message::VecOfF32msg(vec_of_32)]
79 }
80 Message::Endmsg(_) => {
81 println!("Outer count is {:?}", x);
82 std::process::exit(0)
83 }
84 }
85 });
86 tokio::run(client_task);
87}
examples/master_and_slave.rs (line 73)
68fn manager() {
69 use futures::sync::mpsc;
70 use std::sync::{Arc, Mutex};
71 let future_task = future::ok(1).and_then(|_| {
72 let srv = create_tcp_server("127.0.0.1:6666", "management_server");
73 let clt = create_tcp_client("127.0.0.1:7777", "management_client");
74 let connections = srv.connections.clone();
75
76 let clt_task = clt.start_client(move |msg: Message| {
77 println!("manager receive {:?} from master", msg);
78 match msg {
79 Message::Stop() => {
80 for (_, tx) in connections.lock().unwrap().iter_mut() {
81 (*tx).try_send(Some(0)).unwrap();
82 }
83 std::process::exit(0);
84 }
85 _ =>{}
86 }
87 vec![msg]
88 });
89 tokio::spawn(clt_task);
90
91 let srv_task = srv.start_server(1, |client_name, msg: u32| {
92 println!("manager receive {} from {}", msg, client_name);
93 vec![(client_name, msg + 1)]
94 });
95 tokio::spawn(srv_task);
96 Ok(())
97 }).map_err(|e: std::io::Error| println!("{:?}", e));
98 tokio::run(future_task);
99}
100
101fn driver() {
102 let clt = create_tcp_client("127.0.0.1:6666", "driver");
103 let client_task = clt.start_client(|msg: u32| {
104 println!("{}", msg);
105 if msg != 0 {
106 vec![msg + 1]
107 } else {
108 println!("oh god");
109 std::process::exit(0);
110 }
111 });
112 tokio::run(client_task);
113}