Struct micro_http_server::MicroHTTP
source · [−]pub struct MicroHTTP { /* private fields */ }
Expand description
This is the main struct of the µHTTP server.
Implementations
sourceimpl MicroHTTP
impl MicroHTTP
sourcepub fn new(interface: impl ToSocketAddrs) -> Result<MicroHTTP, Error>
pub fn new(interface: impl ToSocketAddrs) -> Result<MicroHTTP, Error>
Create a new MicroHTTP server on the given interface.microhttp
Internally, this just tries to create a TcpListener
- nothing special.
Returns the new MicroHTTP server or an std::io::Error
on error.
Example
use micro_http_server::MicroHTTP;
let interface: &str = "127.0.0.1:3000";
let server = MicroHTTP::new(interface)
.expect("Could not create server, maybe the port is already being used?");
sourcepub fn set_nonblocking(&mut self, state: bool) -> Result<(), Error>
pub fn set_nonblocking(&mut self, state: bool) -> Result<(), Error>
Set whether or not the underlying TcpListener awaits connections in nonblocking mode
sourcepub fn next_client(&self) -> Result<Option<Client>, Error>
pub fn next_client(&self) -> Result<Option<Client>, Error>
Return the next available client which is incoming at this server.
Returns either:
Some(client)
if a client is availableNone
if no client is currently available (i.e. no one has reached out to the server yet)std::io::Error
if something is wrong with the server.
Example
use std::{io::{Read,Write},net::TcpStream};
use micro_http_server::MicroHTTP;
let server = MicroHTTP::new("127.0.0.1:3000").expect("Could not create server.");
println!("[Server] Waiting for a client @ 127.0.0.1:3000...");
loop {
let result = server.next_client();
if result.is_err() {
println!("Something is wrong with the client: {:?}", result.unwrap_err());
break;
}
match result.unwrap() {
None => {
// Here you can sleep or do something else.
println!("Still waiting for clients...");
},
Some(client) => {
println!("Got a new client from: {:?}", client.addr());
}
}
}
Auto Trait Implementations
impl RefUnwindSafe for MicroHTTP
impl Send for MicroHTTP
impl Sync for MicroHTTP
impl Unpin for MicroHTTP
impl UnwindSafe for MicroHTTP
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more