我正在尝试从crust
箱子中的例子,但无法想象如何从我连接的同伴获得端口。
地壳示例包括以下功能
use crust::Service;
pub fn print_connected_nodes(&self, service: &Service) {
println!("Node count: {}", self.nodes.len());
for (id, node) in &self.nodes {
let ip = service.get_peer_ip_addr(node).unwrap();
let status = if service.is_connected(node) {
"Connected "
} else {
"Disconnected"
};
println!("[{} - {}] {} {:?}", id, ip, status, node);
}
println!();
}
在那里我可以建立连接并使用let ip = service.get_peer_ip_addr(node)
获取IP地址,但在阅读文档后,我找不到任何获取端口的方法。
有另一种获取端口的方法吗?
看看source for get_peer_ip_addr
,它使用get_peer_socket_addr
来获取套接字,其中包含地址和端口。不幸的是get_peer_socket_addr
是私人的,所以你不能得到这个端口。在地壳bugtracker中有一个关于这个问题的open question。