5 use async_std::net::{TcpStream, ToSocketAddrs};
8 pub fn tcp_client<A: ToSocketAddrs + std::fmt::Display>(ip_addrs: A) -> anyhow::Result<Self> {
9 let stream = task::block_on(TcpStream::connect(&ip_addrs))?;
10 info!("Established client TCP connection to {}", ip_addrs);
12 stream.set_nodelay(true)?;
13 Ok(Self::from(stream))
17 impl From<TcpStream> for Connection {
18 fn from(stream: TcpStream) -> Self {
19 let write_stream = stream.clone();
21 let local_addr = stream
23 .expect("Local address could not be retrieved");
25 let peer_addr = stream
27 .expect("Peer address could not be retrieved");
33 Box::new(write_stream),