refactor: ♻️ file organizations
This commit is contained in:
parent
527886676c
commit
88c1b2517c
7 changed files with 195 additions and 68 deletions
45
src/client.rs
Normal file
45
src/client.rs
Normal file
|
@ -0,0 +1,45 @@
|
|||
use std::{net::SocketAddr, path::Path};
|
||||
|
||||
use s2n_quic::{Client, client::Connect};
|
||||
use tokio::io::AsyncWriteExt;
|
||||
|
||||
use crate::ClientConfig;
|
||||
|
||||
pub async fn run<'a>(client_config: ClientConfig<'a>) {
|
||||
let client = Client::builder()
|
||||
.with_io("0:0")
|
||||
.unwrap()
|
||||
.with_tls(Path::new("certificates/cert.pem"))
|
||||
.unwrap()
|
||||
.start()
|
||||
.unwrap();
|
||||
|
||||
println!("Client Address = {}", client.local_addr().unwrap());
|
||||
let connect = Connect::new(client_config.server_address.parse::<SocketAddr>().unwrap())
|
||||
.with_server_name("localhost");
|
||||
let mut connection = match client.connect(connect).await {
|
||||
Ok(connection) => connection,
|
||||
Err(err_val) => {
|
||||
eprintln!("Error: Client Connection | {}", err_val);
|
||||
return;
|
||||
}
|
||||
};
|
||||
connection.keep_alive(true).unwrap();
|
||||
|
||||
let stream = connection.open_bidirectional_stream().await.unwrap();
|
||||
let (mut receive_stream, mut send_stream) = stream.split();
|
||||
send_stream
|
||||
.send("Hi from Tahinli".as_bytes().into())
|
||||
.await
|
||||
.unwrap();
|
||||
let received = receive_stream.receive().await.unwrap().unwrap();
|
||||
println!("{}", String::from_utf8(received.to_vec()).unwrap());
|
||||
|
||||
if let Err(err_val) = send_stream.close().await {
|
||||
eprintln!("Error: Stream Close | {}", err_val);
|
||||
}
|
||||
|
||||
if let Err(err_val) = send_stream.shutdown().await {
|
||||
eprintln!("Error: Stream Shutdown| {}", err_val);
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue