c++ - protocolo - Conexión en modo pasivo FTP rechazada
que es un cliente ftp (1)
El texto de respuesta a PASV
no tiene un formato estandarizado ( EPSV
sí EPSV
hace), así que asegúrese de analizar correctamente el IP / Puerto, ya que puede recibir uno de los muchos formatos diferentes que utilizan los servidores del mundo real:
227 Entering Passive Mode (h1,h2,h3,h4,p1,p2).
227 Entering Passive Mode (h1,h2,h3,h4,p1,p2
227 Entering Passive Mode. h1,h2,h3,h4,p1,p2
227 =h1,h2,h3,h4,p1,p2
Solo para mostrar algunas posibilidades.
Si está analizando correctamente el IP / Puerto y aún no puede conectarse, entonces el servidor tiene demasiadas conexiones de cliente en la IP / Puerto y se quedó sin ranuras disponibles para que se conecte, o bien la IP / Puerto está siendo bloqueado por un cortafuegos / enrutador que el servidor no conoce cuando le informó el IP / puerto.
Desafortunadamente, un error de connection refused
no ofrece ninguna manera de diferenciar entre esas condiciones, por lo que todo lo que puede hacer es intentar conectarse unas pocas veces antes de fallar la transferencia, o bien enviar un ABOR
para informar al servidor que cierre la IP pasiva actual. Puerto y luego enviar un nuevo PASV
para obtener una nueva IP / Puerto.
Estoy creando un cliente ftp y tengo un problema.
Primero, creo un socket donde envié USER y PASS, luego PASV a recibe IP y PORT y luego creo un segundo socket de datos y trato de conectar, pero hay un problema.
Se conectará 5 veces de 6, pero en la 6ª vez recibí el error 111 Connection Refused
y no tengo idea de cómo solucionarlo.