simple_connection/
simple_connection.rs1extern crate tokio;
15extern crate msg_transmitter;
16
17use msg_transmitter::*;
18use std::env;
19
20fn main() {
21 let a = env::args().skip(1).collect::<Vec<_>>();
22 match a.first().unwrap().as_str() {
23 "client" => client(),
24 "server" => server(),
25 _ => panic!("failed"),
26 };
27}
28
29fn server() {
30 let server = create_tcp_server("127.0.0.1:6666", "server");
31 let server_task = server.start_server(0, |client_name, msg| {
32 println!("{}: {}", client_name, msg);
33 vec![(client_name, msg + 1)]
34 });
35 tokio::run(server_task);
36}
37
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}