Enum std::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<SocketAddr, AddrParseError>
🔬This is a nightly-only experimental API. (addr_parse_ascii
#101035)
pub fn parse_ascii(b: &[u8]) -> Result<SocketAddr, 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> From<(I, u16)> for SocketAddrwhere
I: Into<IpAddr>,
impl<I> From<(I, u16)> for SocketAddrwhere I: Into<IpAddr>,
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 moresource§impl Hash for SocketAddr
impl Hash for SocketAddr
source§impl Ord for SocketAddr
impl Ord for SocketAddr
source§impl PartialEq<SocketAddr> for SocketAddr
impl PartialEq<SocketAddr> for SocketAddr
source§impl PartialOrd<SocketAddr> for SocketAddr
impl PartialOrd<SocketAddr> for SocketAddr
source§fn partial_cmp(&self, other: &SocketAddr) -> Option<Ordering>
fn partial_cmp(&self, other: &SocketAddr) -> Option<Ordering>
source§impl ToSocketAddrs for SocketAddr
impl ToSocketAddrs for SocketAddr
§type Iter = IntoIter<SocketAddr>
type Iter = IntoIter<SocketAddr>
在此类型可能对应的套接字地址上返回的迭代器。
source§fn to_socket_addrs(&self) -> Result<IntoIter<SocketAddr>>
fn to_socket_addrs(&self) -> Result<IntoIter<SocketAddr>>
将此对象转换为已解析的
SocketAddr
的迭代器。 Read moreimpl Copy for SocketAddr
impl Eq for SocketAddr
impl StructuralEq for SocketAddr
impl StructuralPartialEq for SocketAddr
Auto Trait Implementations§
impl RefUnwindSafe for SocketAddr
impl Send for SocketAddr
impl Sync for SocketAddr
impl Unpin for SocketAddr
impl UnwindSafe for SocketAddr
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
从拥有的值中借用。 Read more