4 use async_std::net::{TcpStream, ToSocketAddrs};
7 pub async fn tcp_client<A: ToSocketAddrs + std::fmt::Display>(ip_addrs: A) -> anyhow::Result<Self> {
8 let stream = TcpStream::connect(&ip_addrs).await?;
9 info!("Established client TCP connection to {}", ip_addrs);
11 stream.set_nodelay(true)?;
12 Ok(Self::from(stream))
16 impl From<TcpStream> for Connection {
17 fn from(stream: TcpStream) -> Self {
18 let write_stream = stream.clone();
20 let local_addr = stream
22 .expect("Local address could not be retrieved");
24 let peer_addr = stream
26 .expect("Peer address could not be retrieved");
32 Box::pin(write_stream),