rust 如何从TcpStream中逐行读取?

8oomwypt  于 2022-12-23  发布在  其他
关注(0)|答案(1)|浏览(199)

我正在学习夜间文档中的 Make a simple TCP server 示例。我已经通过telnet连接,我希望看到逐行发送的数据。现在我是read_to_string,只有在关闭telnet连接时才能获得数据。我希望能够在telnet会话中的用户点击回车后读取服务器上的每一行。

ej83mcc0

ej83mcc01#

这是我在阅读BufferedReader的文档后得出的结果。

fn handle_client(mut stream: TcpStream) {
    let wresult = stream.write_line("Welcome.");
    match wresult {
        Err(e) => {
            println!("error writing: {}", e);
        }
        _ => {}
    }
    let mut reader = BufferedReader::new(stream);

    loop {
        let result = reader.read_line();
        match result {
            Ok(data) => {
                println!("{}", data.as_slice().trim());
            }
            Err(e) => {
                println!("error reading: {}", e);
                break;
            }
        }
    }
}

相关问题