网络不可用时,绑定的UDP套接字未关闭

时间:2019-03-01 20:17:26

标签: sockets rust udp

在Linux上,我打开UDP套接字并将其绑定到当前可用的地址。然后,我循环收听新数据包。然后,我禁用了wifi,接口掉线了,并且从接口中删除了网络地址。我希望接收调用返回错误,但事实并非如此。

这是预期的行为吗?当套接字绑定到的地址消失时,是否有办法从接收调用中接收错误?

Rust中的示例代码:

use std::net::UdpSocket;

fn main() {
    let mut socket = UdpSocket::bind("192.168.2.43:64041").expect("Unable to open socket");
    loop {
        let mut buf = [0u8; 1500];
        match socket.recv_from(&mut buf) {
            Ok((n, _addr)) => println!("Received {} bytes", n),
            Err(err) => println!("Error receiving bytes: {}", err)
        }
    }
}

0 个答案:

没有答案