【发布时间】:2022-01-15 23:25:40
【问题描述】:
尽管如此,我还是无法使用客户端连接到我的服务器。我的笔记本电脑充当客户端,我的 PC 充当服务器,它们连接到同一个 wifi。我尝试关闭 Windows 防火墙,但没有帮助。这是我的笔记本电脑(客户端)收到的错误代码:Error: Os { code: 10061, kind: ConnectionRefused, message: "No connection could be made because the target machine actively refused it." }
在笔记本电脑上运行的客户端代码:
use std::io::prelude::*;
use std::net::TcpStream;
fn main() -> std::io::Result<()> {
let mut stream = TcpStream::connect("localhost:8080")?;
stream.write(&[1])?;
stream.read(&mut [0; 128])?;
Ok(())
} // the stream is closed here
在 PC 上运行的服务器代码:
use std::net::{TcpListener, TcpStream};
use std::io::{Read, Write};
use std::io::{BufReader,BufWriter};
fn handle_client(stream: TcpStream) {
// ...
let mut reader = BufReader::new(&stream);
let mut response = String::new();
reader.read_to_string(&mut response).unwrap();
println!("{}", response);
}
fn main() -> std::io::Result<()> {
let listener = TcpListener::bind("0.0.0.0:8080")?;
// accept connections and process them serially
for stream in listener.incoming() {
handle_client(stream?);
}
Ok(())
}
【问题讨论】:
-
我很确定 localhost 不是您其他机器的地址,因此名称为 LOCAL 主机。
-
是这个问题吗? @Stargateur
-
你是机器A,你尝试联系机器B,但是使用机器A的locahost,你需要机器B的ip
-
好的,请问如何获取服务器的ip? @Stargateur
-
我是否可以建议您在直接进入自定义 Rust 代码之前,确保您可以使用更简单、久经考验的工具(如
nc(netcat))创建 TCP 连接?这样你就会知道问题出在你的代码中,而不是连接本身(我怀疑这里就是这种情况)。
标签: windows rust server tcp port