У меня есть следующий сервер:
extern crate simple_server;
use crate::simple_server::*;
fn main() {
let host = "127.0.0.1";
let port = "7878";
let server = Server::new(|request, mut response| {
println!("Request received. {} {}", request.method(), request.uri());
println!("=============BODY=================");
let mut v: Vec<u8> = Vec::new();
for b in request.body().iter() {
v.push(*b);
}
let body_as_str = String::from_utf8(v);
match body_as_str {
Ok(strr) => println!("{}", strr),
Err(e) => println!("{}", e),
}
//ROUTING
match (request.method(), request.uri().path()) {
(&Method::GET, "/") => {
Ok(response.body("<h1>Hi!</h1><p>Hello hacker!</p>".as_bytes().to_vec())?)
}
(&Method::POST, "/") => {
Ok(response.body("<h1>Hi!</h1><p>Hello hacker!</p>".as_bytes().to_vec())?)
}
(_, _) => {
response.status(StatusCode::NOT_FOUND);
Ok(response.body("<h1>404</h1><p>Not found!<p>".as_bytes().to_vec())?)
}
}
});
println!("Listening on: {} port {}", host, port);
server.listen(host, port);
}
Я не могу получить доступ к странице, идущей на http://my_server_ip:7878/ из Интернета.
У меня есть брандмауэр моего серверанастройка, позволяющая все на 7878
, а также, другие простые серверы прекрасно работают, когда настроены на прослушивание этого порта, что заставляет меня думать, что это проблема кода с моим конкретным приложением Rust.Примером сервера, который работает нормально, является static-server на npm.
Однако, когда я тестирую это приложение на моей сборочной машине, перейдя на "127.0.0.1:7878"
, оно отлично работает.