1use udp_netmsg::prelude::*;
2use serde::{Serialize, Deserialize};
3use std::sync::Arc;
4
5#[derive(Serialize, Deserialize)]
6struct Message {
7 user: String,
8 message: String,
9}
10
11fn main()
12{
13 let manager = Builder::init()
14 .socket(String::from("0.0.0.0:40061"))
15 .start::<JSON>().unwrap();
17
18 let manager = Arc::from(manager);
19 let man = manager.clone();
20
21 std::thread::spawn(move || {
22 let man = man.clone();
23
24 loop {
25 match man.get::<Message>() {
26 Ok((_,obj)) => println!("{} says: {}", obj.user, obj.message),
27 Err(_) => {}
28 }
29 }
30 });
31
32 loop {
33 let mut message = String::new();
34 std::io::stdin().read_line(&mut message).expect("Did not enter a correct string");
35
36 let m = Message{user: String::from("User1"), message};
37
38 manager.send(m, String::from("127.0.0.1:40062")).unwrap();
39 }
40}