pub struct SockAddr { /* private fields */ }
Expand description

The address of a socket.

SockAddrs may be constructed directly to and from the standard library SocketAddr, SocketAddrV4, and SocketAddrV6 types.

Implementations

Initialise a SockAddr by calling the function init.

The type of the address storage and length passed to the function init is OS/architecture specific.

Safety

Caller must initialise the provided address storage and set the length properly. The address is zeroed before init is called and is thus valid to dereference and read from. The length initialised to the maximum length of the storage.

Examples
use std::io;
use std::os::unix::io::AsRawFd;

use socket2::{SockAddr, Socket, Domain, Type};

let socket = Socket::new(Domain::IPV4, Type::STREAM, None)?;

// Initialise a `SocketAddr` byte calling `getsockname(2)`.
let (_, address) = unsafe {
    SockAddr::init(|addr_storage, len| {
        // The `getsockname(2)` system call will intiliase `storage` for
        // us, setting `len` to the correct length.
        if libc::getsockname(socket.as_raw_fd(), addr_storage.cast(), len) == -1 {
            Err(io::Error::last_os_error())
        } else {
            Ok(())
        }
    })
}?;

Returns this address’s family.

Returns the size of this address in bytes.

Returns a raw pointer to the address.

Returns this address as a SocketAddr if it is in the AF_INET (IPv4) or AF_INET6 (IPv6) family, otherwise returns None.

Returns this address as a SocketAddrV4 if it is in the AF_INET family.

Returns this address as a SocketAddrV6 if it is in the AF_INET6 family.

Trait Implementations

Formats the value using the given formatter. Read more

Performs the conversion.

Performs the conversion.

Performs the conversion.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.