Lines Matching refs:SocketAddr

7 //! This defines `SocketAddr`, `SocketAddrV4`, and `SocketAddrV6` in a
22 /// The size of a `SocketAddr` instance may vary depending on the target operating
30 /// use std::net::{IpAddr, Ipv4Addr, SocketAddr};
32 /// let socket = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8080);
40 pub enum SocketAddr {
54 /// See [`SocketAddr`] for a type encompassing both IPv4 and IPv6 socket addresses.
87 /// See [`SocketAddr`] for a type encompassing both IPv4 and IPv6 socket addresses.
116 impl SocketAddr {
124 /// use std::net::{IpAddr, Ipv4Addr, SocketAddr};
126 /// let socket = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8080);
136 pub const fn new(ip: IpAddr, port: u16) -> SocketAddr {
138 IpAddr::V4(a) => SocketAddr::V4(SocketAddrV4::new(a, port)),
139 IpAddr::V6(a) => SocketAddr::V6(SocketAddrV6::new(a, port, 0, 0)),
148 /// use std::net::{IpAddr, Ipv4Addr, SocketAddr};
150 /// let socket = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8080);
161 SocketAddr::V4(ref a) => IpAddr::V4(*a.ip()),
162 SocketAddr::V6(ref a) => IpAddr::V6(*a.ip()),
171 /// use std::net::{IpAddr, Ipv4Addr, SocketAddr};
173 /// let mut socket = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8080);
181 (&mut SocketAddr::V4(ref mut a), IpAddr::V4(new_ip)) => a.set_ip(new_ip),
182 (&mut SocketAddr::V6(ref mut a), IpAddr::V6(new_ip)) => a.set_ip(new_ip),
192 /// use std::net::{IpAddr, Ipv4Addr, SocketAddr};
194 /// let socket = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8080);
205 SocketAddr::V4(ref a) => a.port(),
206 SocketAddr::V6(ref a) => a.port(),
215 /// use std::net::{IpAddr, Ipv4Addr, SocketAddr};
217 /// let mut socket = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8080);
224 SocketAddr::V4(ref mut a) => a.set_port(new_port),
225 SocketAddr::V6(ref mut a) => a.set_port(new_port),
229 /// Returns [`true`] if the [IP address] in this `SocketAddr` is an
238 /// use std::net::{IpAddr, Ipv4Addr, SocketAddr};
240 /// let socket = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8080);
251 matches!(*self, SocketAddr::V4(_))
254 /// Returns [`true`] if the [IP address] in this `SocketAddr` is an
263 /// use std::net::{IpAddr, Ipv6Addr, SocketAddr};
265 /// let socket = SocketAddr::new(IpAddr::V6(Ipv6Addr::new(0, 0, 0, 0, 0, 65535, 0, 1)), 8080);
276 matches!(*self, SocketAddr::V6(_))
572 impl From<SocketAddrV4> for SocketAddr {
573 /// Converts a [`SocketAddrV4`] into a [`SocketAddr::V4`].
574 fn from(sock4: SocketAddrV4) -> SocketAddr {
575 SocketAddr::V4(sock4)
580 impl From<SocketAddrV6> for SocketAddr {
581 /// Converts a [`SocketAddrV6`] into a [`SocketAddr::V6`].
582 fn from(sock6: SocketAddrV6) -> SocketAddr {
583 SocketAddr::V6(sock6)
588 impl<I: Into<IpAddr>> From<(I, u16)> for SocketAddr {
589 /// Converts a tuple struct (Into<[`IpAddr`]>, `u16`) into a [`SocketAddr`].
591 /// This conversion creates a [`SocketAddr::V4`] for an [`IpAddr::V4`]
592 /// and creates a [`SocketAddr::V6`] for an [`IpAddr::V6`].
594 /// `u16` is treated as port of the newly created [`SocketAddr`].
595 fn from(pieces: (I, u16)) -> SocketAddr {
596 SocketAddr::new(pieces.0.into(), pieces.1)