Skip to content

Commit

Permalink
update example
Browse files Browse the repository at this point in the history
  • Loading branch information
irvingoujAtDevolution committed Feb 7, 2024
1 parent e88773f commit ec5d954
Showing 1 changed file with 28 additions and 0 deletions.
28 changes: 28 additions & 0 deletions examples/tcp_client.rs
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,34 @@ fn main() -> io::Result<()> {

println!("event: {:?}", event);
println!("socket is now writable");
// ========================================================================
// the below is example of a bad socket
println!("testing bad socket");
let bad_socket = socket2::Socket::new(socket2::Domain::IPV4, Type::STREAM, None)?;
let addr = net::SocketAddr::new("127.0.0.1".parse().unwrap(), 12345);
bad_socket.set_nonblocking(true)?;

unsafe {
poller.add(&bad_socket, Event::writable(0))?;
}

events.clear();
poller.wait(&mut events, Some(Duration::from_secs(3)))?;

let err = bad_socket.connect(&addr.into()).unwrap_err();
assert_eq!(115, err.raw_os_error().expect("No OS error"));

poller
.modify(&bad_socket, Event::writable(0))
.expect("modify failed");

events.clear();
poller.wait(&mut events, Some(Duration::from_secs(3)))?;

let event = events.iter().next().expect("no event");

assert!(event.is_err().unwrap());
println!("bad socket is now in error state");

Ok(())
}

0 comments on commit ec5d954

Please sign in to comment.