Tcp wrapper library

Async tcp wrapper

toml [dependencies] tcp_wrapper = "0.2" tokio = { version = "1", features = ["full"] } Then, on your main.rs:

```rust,norun use tcpwrapper::clientasync::TcpClient; use tcpwrapper::serverasync::TcpServer; use tcpwrapper::server_async::Connection; use std::thread; use std::error::Error; use tokio::spawn; use tokio::join;

[tokio::main]

async fn main() -> Result<(), Box> { let tcpserver = TcpServer::bind("127.0.0.1:8085").await?; join!( server(tcpserver), client() ); Ok(()) }

async fn server(server: TcpServer) -> Result<(), Box> { let connection = server.accept().await?; let req = connection.recvrequest().await?; asserteq!(req, "Hello, server"); connection.sendresponse("Hello, client").await?; Ok(()) } async fn client() -> Result<(), Box> { let mut client = TcpClient::connect("127.0.0.1:8085").await?; let response = client.sendrequest("Hello, server").await?; assert_eq!(response, "Hello, client"); Ok(()) } ```

Std tcp wrapper

toml [dependencies] tcp_wrapper = "0.2" Then, on your main.rs:

```rust,norun use tcpwrapper::clientstd::Client; use tcpwrapper::server_std::TcpServer; use std::error::Error; use std::thread;

fn main() -> Result<(), Box> { let server = TcpServer::bind("127.0.0.1:9092")?; thread::spawn(move || { for elem in server.incoming() { let mut e = elem.unwrap(); let reqstr = e.recvrequest().unwrap(); e.sendresponse("test").unwrap(); } }); let mut client = Client::connect("127.0.0.1:9092")?; let resp = client.sendrequest("hello").unwrap(); assert_eq!(resp, "test"); Ok(()) } ```

License

This project is licensed under the [MIT license].