2014-10-26 98 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; 
      } 
     } 
    } 
}