녹에 소켓 서버를 작성하고 응답/송신 코드를 구현했습니다. 가장 큰 문제는 연결이 닫힐 때까지 방법 read_to_string
이 작동한다는 것입니다. 줄 바꿈이 표시 될 때까지 작동하지 않습니다. 이 코드에서 예를 들어read_to_string을 사용할 때 어떻게 새 줄에서 멈출 수 있습니까?
,
use std::net::{TcpListener, TcpStream};
use std::io::Write;
use std::io::Read;
fn handle_client(stream: TcpStream) {
let conn = stream;
let conn = send(conn, "Hello!");
let mut conn = send(conn, "Bye!");
fn send(mut stream: TcpStream, s: &str) -> TcpStream {
let giver = format!("{}\n", s);
let _ = stream.write(giver.into_bytes().as_slice());
return stream;
}
let mut response: String = "".to_string();
let length = conn.read_to_string(&mut response); // ignore here too
println!("Message:\n{}\n\nLength: {}", response, length.unwrap());
}
서버는 데이터를 제시하기 전에 차단 기다립니다.
응답이 개행에서 구문 분석되도록하려면 어떻게해야합니까?
대단히 감사합니다. 저는 방금 Rust와 함께 시작했으며 일반 구문/방법론에 여전히 익숙해 져 있습니다. 이것은 정말로 도움이됩니다. – f3rn0s