SocketAddrV6 in std::net - Rust (original) (raw)

pub struct SocketAddrV6 { /* private fields */ }

Expand description

An IPv6 socket address.

IPv6 socket addresses consist of an IPv6 address, a 16-bit port number, as well as fields containing the traffic class, the flow label, and a scope identifier (see IETF RFC 2553, Section 3.3 for more details).

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

The size of a SocketAddrV6 struct may vary depending on the target operating system. Do not assume that this type has the same memory layout as the underlying system representation.

§Examples

use std:🥅:{Ipv6Addr, SocketAddrV6};

let socket = SocketAddrV6::new(Ipv6Addr::new(0x2001, 0xdb8, 0, 0, 0, 0, 0, 1), 8080, 0, 0);

assert_eq!("[2001:db8::1]:8080".parse(), Ok(socket));
assert_eq!(socket.ip(), &Ipv6Addr::new(0x2001, 0xdb8, 0, 0, 0, 0, 0, 1));
assert_eq!(socket.port(), 8080);

source§

source

🔬This is a nightly-only experimental API. (addr_parse_ascii #101035)

Parse an IPv6 socket address from a slice of bytes.

#![feature(addr_parse_ascii)]

use std:🥅:{Ipv6Addr, SocketAddrV6};

let socket = SocketAddrV6::new(Ipv6Addr::new(0x2001, 0xdb8, 0, 0, 0, 0, 0, 1), 8080, 0, 0);

assert_eq!(SocketAddrV6::parse_ascii(b"[2001:db8::1]:8080"), Ok(socket));

source§

1.0.0 (const: 1.69.0) · source

Creates a new socket address from an IPv6 address, a 16-bit port number, and the flowinfo and scope_id fields.

For more information on the meaning and layout of the flowinfo and scope_idparameters, see IETF RFC 2553, Section 3.3.

§Examples
use std:🥅:{SocketAddrV6, Ipv6Addr};

let socket = SocketAddrV6::new(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1), 8080, 0, 0);

1.0.0 (const: 1.69.0) · source

Returns the IP address associated with this socket address.

§Examples
use std:🥅:{SocketAddrV6, Ipv6Addr};

let socket = SocketAddrV6::new(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1), 8080, 0, 0);
assert_eq!(socket.ip(), &Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1));

1.9.0 · source

Changes the IP address associated with this socket address.

§Examples
use std:🥅:{SocketAddrV6, Ipv6Addr};

let mut socket = SocketAddrV6::new(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1), 8080, 0, 0);
socket.set_ip(Ipv6Addr::new(76, 45, 0, 0, 0, 0, 0, 0));
assert_eq!(socket.ip(), &Ipv6Addr::new(76, 45, 0, 0, 0, 0, 0, 0));

1.0.0 (const: 1.69.0) · source

Returns the port number associated with this socket address.

§Examples
use std:🥅:{SocketAddrV6, Ipv6Addr};

let socket = SocketAddrV6::new(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1), 8080, 0, 0);
assert_eq!(socket.port(), 8080);

1.9.0 · source

Changes the port number associated with this socket address.

§Examples
use std:🥅:{SocketAddrV6, Ipv6Addr};

let mut socket = SocketAddrV6::new(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1), 8080, 0, 0);
socket.set_port(4242);
assert_eq!(socket.port(), 4242);

1.0.0 (const: 1.69.0) · source

Returns the flow information associated with this address.

This information corresponds to the sin6_flowinfo field in C’s netinet/in.h, as specified in IETF RFC 2553, Section 3.3. It combines information about the flow label and the traffic class as specified in IETF RFC 2460, respectively Section 6 and Section 7.

§Examples
use std:🥅:{SocketAddrV6, Ipv6Addr};

let socket = SocketAddrV6::new(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1), 8080, 10, 0);
assert_eq!(socket.flowinfo(), 10);

1.9.0 · source

Changes the flow information associated with this socket address.

See SocketAddrV6::flowinfo’s documentation for more details.

§Examples
use std:🥅:{SocketAddrV6, Ipv6Addr};

let mut socket = SocketAddrV6::new(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1), 8080, 10, 0);
socket.set_flowinfo(56);
assert_eq!(socket.flowinfo(), 56);

1.0.0 (const: 1.69.0) · source

Returns the scope ID associated with this address.

This information corresponds to the sin6_scope_id field in C’s netinet/in.h, as specified in IETF RFC 2553, Section 3.3.

§Examples
use std:🥅:{SocketAddrV6, Ipv6Addr};

let socket = SocketAddrV6::new(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1), 8080, 0, 78);
assert_eq!(socket.scope_id(), 78);

1.9.0 · source

Changes the scope ID associated with this socket address.

See SocketAddrV6::scope_id’s documentation for more details.

§Examples
use std:🥅:{SocketAddrV6, Ipv6Addr};

let mut socket = SocketAddrV6::new(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1), 8080, 0, 78);
socket.set_scope_id(42);
assert_eq!(socket.scope_id(), 42);

1.0.0 · source§

1.0.0 · source§

1.0.0 · source§

1.16.0 · source§

1.5.0 · source§

§

The associated error which can be returned from parsing.

source§

Parses a string s to return a value of this type. Read more

1.0.0 · source§

1.0.0 · source§

1.0.0 · source§

source§

Tests for self and other values to be equal, and is used by ==.

1.0.0 · source§

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.

1.0.0 · source§

source§

This method returns an ordering between self and other values if one exists. Read more

1.0.0 · source§

Tests less than (for self and other) and is used by the < operator. Read more

1.0.0 · source§

Tests less than or equal to (for self and other) and is used by the<= operator. Read more

1.0.0 · source§

Tests greater than (for self and other) and is used by the >operator. Read more

1.0.0 · source§

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more

1.0.0 · source§

§

Returned iterator over socket addresses which this type may correspond to.

source§

1.0.0 · source§

1.0.0 · source§

1.0.0 · source§

§

§

§

§

§

§