Почему Tokio Hello World pani c с «Не удалось установить соединение, потому что целевая машина активно отказала ему»? - PullRequest
0 голосов
/ 27 января 2020

Это пример программы hello world из документации Tokio .

use tokio::prelude::*;

#[tokio::main]
async fn main() {
    let mut stream = TcpStream::connect("127.0.0.1:6142").await.unwrap();
    println!("created stream");

    let result = stream.write(b"hello world\n").await;
    println!("wrote to stream; success={:?}", result.is_ok());
}

, которая дает мне эту ошибку:

thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 10061, kind: ConnectionRefused, message: "No connection could be made because the target machine actively refused it." }', src\libcore\result.rs:1165:5
stack backtrace:
.
.
.

Как я могу это исправить

1 Ответ

3 голосов
/ 27 января 2020

Вы, похоже, не следовали инструкциям для hello world, поэтому вы получаете сообщение об ошибке, потому что сервер не прослушивается:

Установка socat, что является сетевая утилита, которую мы будем использовать для симуляции сервера. Затем введите следующую команду, чтобы распечатать все, что получено через порт 6142 (несколько произвольное число, которое мы выбрали для этого примера):

socat TCP-LISTEN:6142,fork stdout
...