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