pub struct Protocol { /* fields omitted */ }
CBOR protocol communication structure
Binds a UDP listener socket and saves it in a new protocol instance
- host_url - The IP address and port to bind
- data_size - Expected max size of payload in messages
If this function encounters any errors, it will panic
use cbor_protocol::*;
let cbor_connection = Protocol::new(&"0.0.0.0:8000".to_owned(), 4096);
Send a CBOR packet to a specified UDP socket destination
- message - CBOR packet to send. Packet must be a serialized array or tuple.
- dest - UDP socket destination
If this function encounters any errors, it will return an error message string
use cbor_protocol::*;
use serde_cbor::ser;
let cbor_connection = Protocol::new(&"0.0.0.0:8000".to_owned(), 4096);
let message = ser::to_vec_packed(&["ping"]).unwrap();
cbor_connection.send_message(&message, "0.0.0.0:8001".parse().unwrap());
use cbor_protocol::*;
use serde_cbor::ser;
let cbor_connection = Protocol::new(&"0.0.0.0:8000".to_owned(), 4096);
let message = ser::to_vec_packed(&("hello", "world")).unwrap();
cbor_connection.send_message(&message, "0.0.0.0:8001".parse().unwrap());
Send a pause message to a specified UDP socket destination
- dest - UDP socket destination
If this function encounters any errors, it will return an error message string
use cbor_protocol::*;
let cbor_connection = Protocol::new(&"0.0.0.0:8000".to_owned(), 4096);
cbor_connection.send_pause("0.0.0.0:8001".parse().unwrap());
Send a resume message to a specified UDP socket destination
- dest - UDP socket destination
If this function encounters any errors, it will return an error message string
use cbor_protocol::*;
let cbor_connection = Protocol::new(&"0.0.0.0:8000".to_owned(), 4096);
cbor_connection.send_resume("0.0.0.0:8001".parse().unwrap());
Receive a UDP message (no timeout)
If this function encounters any errors, it will return an error message string
use cbor_protocol::*;
let cbor_connection = Protocol::new(&"0.0.0.0:8000".to_owned(), 4096);
let message = cbor_connection.recv_message().unwrap();
Peek at the sender information for the next message in the UDP receive buffer
If this function encounters any errors, it will return an error message string
use cbor_protocol::*;
let cbor_connection = Protocol::new(&"0.0.0.0:8000".to_owned(), 4096);
let source = cbor_connection.peek_peer();
Receive a UDP message and take note of the sender (no timeout)
If this function encounters any errors, it will return an error message string
use cbor_protocol::*;
let cbor_connection = Protocol::new(&"0.0.0.0:8000".to_owned(), 4096);
let (source, message) = cbor_connection.recv_message_peer().unwrap();
Receive a UDP message and take note of the sender (with timeout)
- timeout - Maximum amount of time to wait for a UDP packet
- If this function times out, it will return Err(None)
- If this function encounters any errors, it will return an error message string
use cbor_protocol::*;
use std::time::Duration;
let cbor_connection = Protocol::new(&"0.0.0.0:8000".to_owned(), 4096);
let (source, message) = match cbor_connection.recv_message_peer_timeout(Duration::from_secs(1)) {
Ok(data) => data,
Err(ProtocolError::Timeout) => {
println!("Timeout waiting for message");
return;
}
Err(err) => panic!("Failed to receive message: {}", err),
};
Receive a UDP message (with timeout)
- timeout - Maximum amount of time to wait for a UDP packet
- If this function times out, it will return Err(None)
- If this function encounters any errors, it will return an error message string
use cbor_protocol::*;
use std::time::Duration;
let cbor_connection = Protocol::new(&"0.0.0.0:9000".to_owned(), 4096);
let message = match cbor_connection.recv_message_timeout(Duration::from_secs(1)) {
Ok(data) => data,
Err(ProtocolError::Timeout) => {
println!("Timeout while waiting for message");
return;
}
Err(err) => panic!("Failed to receive message: {}", err),
};
🔬 This is a nightly-only experimental API. (try_from
)
The type returned in the event of a conversion error.
🔬 This is a nightly-only experimental API. (try_from
)
Immutably borrows from an owned value. Read more
🔬 This is a nightly-only experimental API. (get_type_id
)
this method will likely be replaced by an associated static
🔬 This is a nightly-only experimental API. (try_from
)
The type returned in the event of a conversion error.
🔬 This is a nightly-only experimental API. (try_from
)
Mutably borrows from an owned value. Read more