你如何从TcpStream逐行完成阅读?

时间:2014-10-26 20:47:24

标签: tcp stream rust

我在夜间文档中关注制作一个简单的TCP服务器示例。我通过telnet连接,我希望看到逐行发送的数据。现在我是read_to_string,我只关闭telnet连接时获取数据。在telnet会话中的用户点击进入后,我希望能够在服务器上读取每一行。

1 个答案:

答案 0 :(得分:4)

这是我在阅读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;
            }
        }
    }
}