介绍
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);
}
网友评论