The main program
Let’s see how it all works in practice. Make sure that delayserver is up and running, because we’ll need it for these examples to work.
The goal is to send a set of requests to delayserver with varying delays and then use epoll to wait for the responses. Therefore, we’ll only use epoll to track read events in this example. The program doesn’t do much more than that for now.
The first thing we do is to make sure our main.rs file is set up correctly:
ch04/a-epoll/src/main.rs
use std::{io::{self, Read, Result, Write}, net::TcpStream}; use ffi::Event; use poll::Poll; mod ffi; mod poll;We import a few types from our own crate and from the standard library, which we’ll need going forward, as well as declaring our two modules.
We’ll be working directly with TcpStreams in this example, and that means that we’ll have to format the HTTP requests we make to our delayserver ourselves.
The server will accept...