【问题标题】:How do you accomplish reading line by line from a TcpStream?如何从 TcpStream 中逐行读取?
【发布时间】:2014-12-22 01:16:24
【问题描述】:

我正在关注每晚文档中的制作一个简单的 TCP 服务器 示例。我已经通过 telnet 连接,我想查看逐行发送的数据。现在我是read_to_string,只有在关闭 telnet 连接时才能获取数据。我希望能够在 telnet 会话中的用户点击回车后读取服务器上的每一行。

【问题讨论】:

  • 看看 BufferedReader。
  • 谢谢@Levans,我可以用 BufferedReader 做我想做的事。

标签: tcp stream rust


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-15
    • 2011-04-12
    • 1970-01-01
    • 2016-06-28
    • 2012-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多