Non-blocking TCP or Unix connect.
This crate allows you to create a TcpStream
or a UnixStream
in a non-blocking way, without waiting for the connection to become fully established.
use polling::{Event, Poller}; use std::time::Duration; // Create a pending TCP connection. let stream = nb_connect::tcp(([127, 0, 0, 1], 80))?; // Create a poller that waits for the stream to become writable. let poller = Poller::new()?; poller.add(&stream, Event::writable(0))?; // Wait for at most 1 second. if poller.wait(&mut Vec::new(), Some(Duration::from_secs(1)))? == 0 { println!("timeout"); } else if let Some(err) = stream.take_error()? { println!("error: {}", err); } else { println!("connected"); }
Licensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.