crate tokio;
use tokio::net::TcpListener;
use tokio::io;
use tokio::prelude::*;
use std::fs;
fn main()
{
let ans_status = "HTTP/1.1 200 OK\r\n\r\n";
let html_page: String = fs::read_to_string("../ussr.html").unwrap();
let ans_str: String = String::from(ans_status) + &html_page;
let addr = "127.0.0.1:8081".parse().unwrap();
let sck_listen: TcpListener = TcpListener::bind(&addr).unwrap();
let ussr_server = sck_listen.incoming()
.for_each(move |sck_client| {
let buf: &[u8] = b"hello";
let (read_side, write_side) = sck_client.split();
let write_future = io::write_all(write_side, buf)
.then(|res| {
print!("written: {:?}\n", res.is_ok());
Ok(())
});
tokio::spawn(write_future);
Ok(())
})
.map_err(|err| {
print!("err = {:?}\n", err);
});
print!("USSR server running on localhost: 8081...\n");
tokio::run(ussr_server);
print!("Gone.\n");
}
Он работает, но не пойму, как передать ans_str в запись
write_all(write_side, buf)
объясните, пожалуйста, а то всю голову сломал
Если что, статические файлы можно читать на этапе компиляции: https://doc.rust-lang.org/std/macro.include_str.html
Обсуждают сегодня