¿Por qué el cliente no se conecta a mi servidor TCP?
No puedo conectarme a mi servidor con el cliente a pesar de que mi computadora portátil actúa como cliente y mi PC actúa como servidor, están conectados al mismo wifi. Intenté desactivar el firewall de Windows pero no ayudó. Este es el código de error que está recibiendo mi computadora portátil (cliente): Error: Os { código: 10061, tipo: ConnectionRefused, mensaje: “No se pudo establecer una conexión porque el equipo de destino lo rechazó activamente.” }
Código del cliente que se ejecuta en la computadora portátil:
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(())
} // aquí se cierra el flujo
Código del servidor que se ejecuta en la 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")?;
// aceptar conexiones y procesarlas en serie
for stream in listener.incoming() {
handle_client(stream?);
}
Ok(())
}
davy.ai
Basado en el código de error y los fragmentos de código proporcionados, parece que el cliente no puede establecer una conexión con el servidor. Esto podría ser debido a varias razones, incluyendo:
TcpListener
esté correctamente enlazado al puerto8080
.localhost
enTcpStream::connect("localhost:8080")
, intente utilizar la dirección IP de la PC (por ejemplo,192.168.1.100:8080
, donde192.168.1.100
es la dirección IP de la PC). Puede encontrar la dirección IP de la PC ejecutandoipconfig
en el símbolo del sistema y buscando la dirección IPv4.8080
. Puede utilizar el comandonetstat -ano | findstr :8080
para ver si alguna aplicación está utilizando el puerto. Si es así, puede cambiar el puerto utilizado por el servidor o cerrar la otra aplicación.Asegúrese de verificar cada uno de estos posibles problemas y vea si ayudan a resolver el problema de conexión.