gpt4 book ai didi

tcp - Rust TcpListener 不响应外部请求

转载 作者:可可西里 更新时间:2023-11-01 02:38:26 24 4
gpt4 key购买 nike

我的主要功能是这样的:

fn main() {
let listener = TcpListener::bind("192.168.1.187:9527").unwrap();
println!("Listening for connections on port {}", 9527);
for stream in listener.incoming() {
match stream {
Ok(stream) => {
thread::spawn(move || {
let req_stream = &stream.try_clone().unwrap();
let req = request::new(req_stream);
let res = response::new(stream.try_clone().unwrap());
handle_client(req, res)
});
}
Err(e) => println!("Unable to connect: {}", e),
}
}
}

我可以通过 127.0.0.1:9527 获得响应,但我无法从 192.168.1.187:9527 获得响应,这是我办公室的公共(public) IP,即使在部署服务器的计算机上执行此操作。

rust TcpListener 是否只适用于本地主机?如何让它接受外部请求?

最佳答案

ss -lnp 表示服务器仅绑定(bind)到环回地址 - 127.0.0.1。因此,客户端在尝试连接 192.168.1.187:9527 时收到 RST。

尝试:

TcpListener::bind("0.0.0.0:9527").unwrap();

这将绑定(bind)到系统中可用的所有接口(interface)。

不确定为什么“192.168.1.187”不起作用。但是让我们尝试“0.0.0.0”并查看 ss 输出。

关于tcp - Rust TcpListener 不响应外部请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42435723/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com