2014-10-26 99 views
1

我正在关注在nightly文档中创建一个简单的TCP服务器示例。我通过telnet连接,我希望看到数据逐行发送。现在我是read_to_string,我只有在关闭telnet连接时才能获取数据。我希望能够在telnet会话中的用户输入后阅读服务器上的每一行。如何完成从TcpStream逐行读取?

+1

看看BufferedReader。 – Levans 2014-10-26 21:48:00

+0

谢谢@Levans,我能够用BufferedReader做我想做的事。 – Bruce 2014-10-27 00:35:55

回答

3

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