[−][src]Module networking::asyncronous
asyncronous implementation of the tcp networking provided in this crate
Client Example
ⓘThis example is not tested
use networking::{asyncronous::{AsyncHost, AsyncRecv, AsyncNetworkHost}, test_config}; #[tokio::main] async fn main() -> Result<(), Box<dyn std::error::Error>> { let (peer, config) = test_config(); let host = AsyncHost::client_only(&config).await.unwrap(); let mut stream = host.connect(peer).await.unwrap(); let mut buffer = Vec::new(); println!( "got {} bytes from server", stream.recv(&mut buffer).await.unwrap() ); let string = String::from_utf8(buffer).unwrap(); println!("got message: {} from server", string); Ok(()) }
Server Example
ⓘThis example is not tested
use networking::{asyncronous::{AsyncHost, AsyncSend, AsyncNetworkHost}, test_config}; #[tokio::main] async fn main() -> Result<(), Box<dyn std::error::Error>> { let (peer, config) = test_config(); let mut host = AsyncHost::from_host_config(&config).await.unwrap(); while let Some(Ok(strm)) = host.incoming()?.await { let mut stream = strm.verify(&peer)?; // make sure you got a connection from the correct peer println!("sending message hello world"); stream.send(b"hello world").await.unwrap(); } Ok(()) }
Modules
encryption |
Structs
AsyncHost | host object, artifice network implementation of TcpListener |
AsyncRequest | |
AsyncStream | networking implementation that uses TCP to send information over the network |
Incoming | used to listen for incoming connections |
Outgoing | used for constructing an outgoing tcp connection an owned implementation doesn't exist, because it would be unneeded code |
OwnedStreamRecv | owned version of StreamRecv |
OwnedStreamSend | owned version of StreamSend |
StreamRecv | borrowed half of async stream used for receiving data |
StreamSend | borrowed half of an async stream that can be used for sending data |
Traits
AsyncDataStream | currently only used as a marker, will implement more functionality in the future |
AsyncNetworkHost | shared behavior between SllpSocket, and AsyncHost |
AsyncRecv | trait for receiving network data |
AsyncSend | trait for sending data over the network |