1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
//!Raw Socket API //! //!The library serves as thin wrapper over socket API. //!It provides necessary minimum amount of safety and easy to use. //! //!## Examples //! //!### Create TCP socket and connect in non-blocking mode. //! //!```rust //!extern crate lazy_socket; //! //!use std::net; //!use std::str::FromStr; //! //!use lazy_socket::raw::{ //! Socket, //! Family, //! Protocol, //! Type, //! select //!}; //! //!fn main() { //! let timeout = 1000; //! let socket = match Socket::new(Family::IPv4, Type::STREAM, Protocol::TCP) { //! Ok(socket) => socket, //! Err(error) => { //! println!("Couldn't open socket. Erro: {}", error); //! return; //! } //! }; //! //! let dest = net::SocketAddr::from_str("192.168.0.1:80").unwrap(); //! //! let _ = socket.set_blocking(false); //! let _ = socket.connect(&dest); //! match select(&[], &[&socket], &[&socket], Some(timeout)) { //! Ok(_) => println!("Connected!"), //! Err(error) => println!("Failed to connect. Error:{}", error) //! } //!} //!``` #[macro_use] extern crate bitflags; pub mod raw;