ctf_pwn/io/pipe/convert/
tcp.rs

1use crate::io::Pipe;
2use tokio::{
3    io::Result,
4    net::{tcp::*, *},
5};
6
7pub type TcpPipe = Pipe<OwnedReadHalf, OwnedWriteHalf>;
8
9impl TcpPipe {
10    pub async fn connect<A: ToSocketAddrs>(addr: A) -> Result<TcpPipe> {
11        let stream = TcpStream::connect(addr).await?;
12        Ok(stream.into())
13    }
14}
15
16impl From<TcpStream> for TcpPipe {
17    fn from(value: TcpStream) -> Self {
18        let (read_stream, write_stream) = value.into_split();
19        Pipe::new(read_stream, write_stream)
20    }
21}