Enum core::net::SocketAddr
1.0.0 · source · pub enum SocketAddr {
V4(SocketAddrV4),
V6(SocketAddrV6),
}
Expand description
Internet 套接字地址,IPv4 或 IPv6。
Internet 套接字地址包含一个 IP 地址,一个 16 位端口号以及一些可能与版本有关的附加信息。
有关更多详细信息,请参见 SocketAddrV4
和 SocketAddrV6
的文档。
SocketAddr
实例的大小可能会因目标操作系统而异。
Examples
use std::net::{IpAddr, Ipv4Addr, SocketAddr};
let socket = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8080);
assert_eq!("127.0.0.1:8080".parse(), Ok(socket));
assert_eq!(socket.port(), 8080);
assert_eq!(socket.is_ipv4(), true);
RunVariants§
Implementations§
source§impl SocketAddr
impl SocketAddr
sourcepub fn parse_ascii(b: &[u8]) -> Result<Self, AddrParseError>
🔬This is a nightly-only experimental API. (addr_parse_ascii
#101035)
pub fn parse_ascii(b: &[u8]) -> Result<Self, AddrParseError>
addr_parse_ascii
#101035)从字节片中解析套接字地址。
#![feature(addr_parse_ascii)]
use std::net::{IpAddr, Ipv4Addr, Ipv6Addr, SocketAddr};
let socket_v4 = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8080);
let socket_v6 = SocketAddr::new(IpAddr::V6(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1)), 8080);
assert_eq!(SocketAddr::parse_ascii(b"127.0.0.1:8080"), Ok(socket_v4));
assert_eq!(SocketAddr::parse_ascii(b"[::1]:8080"), Ok(socket_v6));
Runsource§impl SocketAddr
impl SocketAddr
1.7.0 (const: 1.69.0) · sourcepub const fn new(ip: IpAddr, port: u16) -> SocketAddr
pub const fn new(ip: IpAddr, port: u16) -> SocketAddr
Trait Implementations§
source§impl Clone for SocketAddr
impl Clone for SocketAddr
source§fn clone(&self) -> SocketAddr
fn clone(&self) -> SocketAddr
返回值的副本。 Read more
source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
从
source
执行复制分配。 Read moresource§impl Debug for SocketAddr
impl Debug for SocketAddr
source§impl Display for SocketAddr
impl Display for SocketAddr
1.17.0 · source§impl<I: Into<IpAddr>> From<(I, u16)> for SocketAddr
impl<I: Into<IpAddr>> From<(I, u16)> for SocketAddr
source§fn from(pieces: (I, u16)) -> SocketAddr
fn from(pieces: (I, u16)) -> SocketAddr
将元组结构体 (Into <IpAddr
>,u16
) 转换为 SocketAddr
。
此转换为 IpAddr::V4
创建 SocketAddr::V4
,并为 IpAddr::V6
创建 SocketAddr::V6
。
u16
被视为新创建的 SocketAddr
的端口。
1.16.0 · source§impl From<SocketAddrV4> for SocketAddr
impl From<SocketAddrV4> for SocketAddr
source§fn from(sock4: SocketAddrV4) -> SocketAddr
fn from(sock4: SocketAddrV4) -> SocketAddr
将 SocketAddrV4
转换为 SocketAddr::V4
。
1.16.0 · source§impl From<SocketAddrV6> for SocketAddr
impl From<SocketAddrV6> for SocketAddr
source§fn from(sock6: SocketAddrV6) -> SocketAddr
fn from(sock6: SocketAddrV6) -> SocketAddr
将 SocketAddrV6
转换为 SocketAddr::V6
。
source§impl FromStr for SocketAddr
impl FromStr for SocketAddr
§type Err = AddrParseError
type Err = AddrParseError
可以从解析中返回的相关错误。
source§fn from_str(s: &str) -> Result<SocketAddr, AddrParseError>
fn from_str(s: &str) -> Result<SocketAddr, AddrParseError>
解析字符串
s
以返回此类型的值。 Read more