如何从外壳会话中检索端口?

时间:2019-03-19 21:57:21

标签: rust

我正在尝试使用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地址,但是在阅读了文档之后,我找不到任何获取端口的方法。

还有其他获取端口的方法吗?

1 个答案:

答案 0 :(得分:0)

source for get_peer_ip_addr,它使用get_peer_socket_addr来获取套接字,该套接字包含地址和端口。不幸的是get_peer_socket_addr是私有的,因此您无法获取端口。外壳Bugtracker中有一个关于此问题的open question