Struct SocketAddrV4

struct SocketAddrV4 { ... }

An IPv4 socket address.

IPv4 socket addresses consist of an IPv4 address and a 16-bit port number, as stated in IETF RFC 793.

See SocketAddr for a type encompassing both IPv4 and IPv6 socket addresses.

Portability

SocketAddrV4 is intended to be a portable representation of socket addresses and is likely not the same as the internal socket address type used by the target operating system's API. Like all repr(Rust) structs, however, its exact layout remains undefined and should not be relied upon between builds.

Textual representation

SocketAddrV4 provides a FromStr implementation. It accepts an IPv4 address in its textual representation, followed by a single :, followed by the port encoded as a decimal integer. Other formats are not accepted.

Examples

use std::net::{Ipv4Addr, SocketAddrV4};

let socket = SocketAddrV4::new(Ipv4Addr::new(127, 0, 0, 1), 8080);

assert_eq!("127.0.0.1:8080".parse(), Ok(socket));
assert_eq!(socket.ip(), &Ipv4Addr::new(127, 0, 0, 1));
assert_eq!(socket.port(), 8080);

Implementations

impl SocketAddrV4

fn parse_ascii(b: &[u8]) -> Result<Self, AddrParseError>

Parse an IPv4 socket address from a slice of bytes.

#![feature(addr_parse_ascii)]

use std::net::{Ipv4Addr, SocketAddrV4};

let socket = SocketAddrV4::new(Ipv4Addr::new(127, 0, 0, 1), 8080);

assert_eq!(SocketAddrV4::parse_ascii(b"127.0.0.1:8080"), Ok(socket));

impl SocketAddrV4

const fn new(ip: Ipv4Addr, port: u16) -> SocketAddrV4

Creates a new socket address from an IPv4 address and a port number.

Examples

use std::net::{SocketAddrV4, Ipv4Addr};

let socket = SocketAddrV4::new(Ipv4Addr::new(127, 0, 0, 1), 8080);
const fn ip(self: &Self) -> &Ipv4Addr

Returns the IP address associated with this socket address.

Examples

use std::net::{SocketAddrV4, Ipv4Addr};

let socket = SocketAddrV4::new(Ipv4Addr::new(127, 0, 0, 1), 8080);
assert_eq!(socket.ip(), &Ipv4Addr::new(127, 0, 0, 1));
const fn set_ip(self: &mut Self, new_ip: Ipv4Addr)

Changes the IP address associated with this socket address.

Examples

use std::net::{SocketAddrV4, Ipv4Addr};

let mut socket = SocketAddrV4::new(Ipv4Addr::new(127, 0, 0, 1), 8080);
socket.set_ip(Ipv4Addr::new(192, 168, 0, 1));
assert_eq!(socket.ip(), &Ipv4Addr::new(192, 168, 0, 1));
const fn port(self: &Self) -> u16

Returns the port number associated with this socket address.

Examples

use std::net::{SocketAddrV4, Ipv4Addr};

let socket = SocketAddrV4::new(Ipv4Addr::new(127, 0, 0, 1), 8080);
assert_eq!(socket.port(), 8080);
const fn set_port(self: &mut Self, new_port: u16)

Changes the port number associated with this socket address.

Examples

use std::net::{SocketAddrV4, Ipv4Addr};

let mut socket = SocketAddrV4::new(Ipv4Addr::new(127, 0, 0, 1), 8080);
socket.set_port(4242);
assert_eq!(socket.port(), 4242);

impl Clone for SocketAddrV4

fn clone(self: &Self) -> SocketAddrV4

impl Copy for SocketAddrV4

impl Debug for SocketAddrV4

fn fmt(self: &Self, fmt: &mut Formatter<'_>) -> Result

impl Display for SocketAddrV4

fn fmt(self: &Self, f: &mut Formatter<'_>) -> Result

impl Eq for SocketAddrV4

impl Freeze for SocketAddrV4

impl FromStr for SocketAddrV4

fn from_str(s: &str) -> Result<SocketAddrV4, AddrParseError>

impl Hash for SocketAddrV4

fn hash<__H: $crate::hash::Hasher>(self: &Self, state: &mut __H)

impl Ord for SocketAddrV4

fn cmp(self: &Self, other: &SocketAddrV4) -> Ordering

impl PartialEq for SocketAddrV4

fn eq(self: &Self, other: &SocketAddrV4) -> bool

impl PartialOrd for SocketAddrV4

fn partial_cmp(self: &Self, other: &SocketAddrV4) -> Option<Ordering>

impl RefUnwindSafe for SocketAddrV4

impl Send for SocketAddrV4

impl StructuralPartialEq for SocketAddrV4

impl Sync for SocketAddrV4

impl Unpin for SocketAddrV4

impl UnsafeUnpin for SocketAddrV4

impl UnwindSafe for SocketAddrV4

impl<T> Any for SocketAddrV4

fn type_id(self: &Self) -> TypeId

impl<T> Borrow for SocketAddrV4

fn borrow(self: &Self) -> &T

impl<T> BorrowMut for SocketAddrV4

fn borrow_mut(self: &mut Self) -> &mut T

impl<T> CloneToUninit for SocketAddrV4

unsafe fn clone_to_uninit(self: &Self, dest: *mut u8)

impl<T> From for SocketAddrV4

fn from(t: T) -> T

Returns the argument unchanged.

impl<T, U> Into for SocketAddrV4

fn into(self: Self) -> U

Calls U::from(self).

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

impl<T, U> TryFrom for SocketAddrV4

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

impl<T, U> TryInto for SocketAddrV4

fn try_into(self: Self) -> Result<U, <U as TryFrom<T>>::Error>