Crate socket2[][src]

Utilities for handling sockets

This crate is sort of an evolution of the net2 crate after seeing the issues on it over time. The intention of this crate is to provide as direct as possible access to the system’s functionality for sockets as possible. No extra fluff (e.g. multiple syscalls or builders) provided in this crate. As a result using this crate can be a little wordy, but it should give you maximal flexibility over configuration of sockets.

Examples

use std::net::SocketAddr;
use socket2::{Socket, Domain, Type};

// create a TCP listener bound to two addresses
let socket = Socket::new(Domain::ipv6(), Type::stream(), None).unwrap();

socket.bind(&"[::1]:12345".parse::<SocketAddr>().unwrap().into()).unwrap();
socket.set_only_v6(false);
socket.listen(128).unwrap();

let listener = socket.into_tcp_listener();
// ...

Structs

Domain

Specification of the communication domain for a socket.

Protocol

Protocol specification used for creating sockets via Socket::new.

SockAddr

The address of a socket.

Socket

Newtype, owned, wrapper around a system socket.

Type

Specification of communication semantics on a socket.