Skip to main content

messenger1/
messenger1.rs

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        //.use_ids(false)
16        .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}