Rust TcpListener不响应外部请求
我的主要职能是:Rust TcpListener不响应外部请求,tcp,rust,Tcp,Rust,我的主要职能是: 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(
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
获得响应,这是我办公室中的公共ip,即使在部署服务器的计算机上执行此操作
rust
TcpListener
是否仅在本地主机上工作?如何使其接受外部请求?ss-lnp
表示服务器仅绑定到环回地址-127.0.0.1。因此,客户端在尝试连接时在192.168.1.187:9527
接收RST
尝试:
TcpListener::bind(“0.0.0.0:9527”).unwrap()代码>
这将绑定到系统中的所有可用接口
不知道为什么“192.168.1.187”不起作用。但是,让我们试试“0.0.0.0”并查看ss
输出。连接是否超时?可能是您机器上的防火墙阻止了传入请求吗?@Prabhu it表示连接出错_REFUSED@Lukazoid我使用archlinux,我不记得安装过防火墙,而且,另一个node.js serve监听端口4001工作得很好。您可以执行ss-lnp
并查看绑定吗?tcp LISTEN 0 128*:9527*:*用户:((“伺服”,pid=2228,fd=3))
,这就解决了问题。还想知道为什么127.0.0.1
不起作用。。。谢谢你的帮助~