rust 阅读流缓冲区时数组的泛型长度

pw136qt2  于 2023-03-18  发布在  其他
关注(0)|答案(1)|浏览(113)

我想根据写入流中的字节在数组中设置一个通用值(n)。现在我不知道缓冲区的确切长度,我只是创建一个硬编码数组来读取流字节。

use mio::net::TcpStream;

...
let mut buf = [0;12];
stream.read_exact(&mut buf).unwrap();

我想交换12硬编码长度为字节长度(n),任何线索?

8ehkhllq

8ehkhllq1#

使用Read::read_to_end()。它不适用于非阻塞流,但只需使用tokio。使用tokioread_to_end()的示例:

async fn read_to_end(stream: &mut tokio::net::TcpStream) -> Vec<u8> {
    use tokio::io::AsyncReadExt;
    
    let mut data = Vec::new();
    stream.read_to_end(&mut data).await.expect("read failed");
    data
}

相关问题