[][src]Function nb_connect::tcp

pub fn tcp<A: Into<SocketAddr>>(addr: A) -> Result<TcpStream>

Creates a pending TCP connection to the specified address.

The returned TCP stream will be in non-blocking mode and in the process of connecting to the specified address.

The stream becomes writable when connected.

Examples

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.insert(&stream);
poller.interest(&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");
}