Rust 網路程式設計,使用 SocketAddr

介紹

SocketAddr定義如下:

pub enum SocketAddr { V4(SocketAddrV4), V6(SocketAddrV6),}

使用示例

SocketAddr中提供了一些方法,使用如下:

use std::net::{IpAddr, Ipv4Addr, Ipv6Addr, SocketAddr};fn main() { let mut socket = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8080); assert_eq!(“127。0。0。1:8080”。parse(), Ok(socket)); let socket_v6 = SocketAddr::new(IpAddr::V6(Ipv6Addr::new(0, 0, 0, 0, 0, 65535, 0, 1)), 8080); //返回IP assert_eq!(socket。ip(), IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1))); //設定IP:修改socketAddr對應的Ip socket。set_ip(IpAddr::V4(Ipv4Addr::new(10, 10, 0, 1))); assert_eq!(socket。ip(), IpAddr::V4(Ipv4Addr::new(10, 10, 0, 1))); //返回埠 assert_eq!(socket。port(), 8080); // 設定埠:修改socketAddr對應的埠 socket。set_port(1025); assert_eq!(socket。port(), 1025); // 判斷是否為ipv4 assert_eq!(socket。is_ipv4(), true); assert_eq!(socket_v6。is_ipv4(), false); // 判斷是否為ipv6 assert_eq!(socket。is_ipv6(), false); assert_eq!(socket_v6。is_ipv6(), true);}