Почему я не могу получить доступ к этому простому серверу Rust из Интернета? - PullRequest
0 голосов
/ 23 декабря 2018

У меня есть следующий сервер:

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", оно отлично работает.

1 Ответ

0 голосов
/ 23 декабря 2018

Используя "127.0.0.1" для переменной host, вы запретили любое соединение, которое не приходит с этого адреса.Используйте "0.0.0.0", например, неопределенный адрес.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...