PDA

Ver la Versión Completa : no conecta a servidor FTP


JOERCHA
07/02/16, 17:26:39
Buenas Tardes, estoy realizando un proyecto, para enviar un fichero via ftp a una camara que tiene el puerto ftp 21 abierto. Desde un movil y con un cliente ftp, acceso sin problemas con la camara a sus carpetas, el problema esta que al realizar un programa para realizar el proyecto, no me conecta y he intentado de todo.

voy a poner algunos datos para que los que puedan ayudarme tengo todos los datos.

Lo estoy realizando en Android Studio.

en AndroidManifest.xml tengo

android:name="android.permission.INTERNET" />

ya en la clase tengo

import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;

y al ejecutar

ftpClient = new FTPClient();
ftpClient.connect("192.168.42.1",21);

no hace el .connect


SOLUCIONADO:
if (Build.VERSION.SDK_INT>9);

{
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().buil d();
StrictMode.setThreadPolicy(policy);
}

mocelet
07/02/16, 18:15:29
El permiso de escritura en medios externos no tiene que ver nada con FTP, en todo caso es
android.permission.INTERNET

JOERCHA
07/02/16, 18:18:55
El permiso de escritura en medios externos no tiene que ver nada con FTP, en todo caso es
android.permission.INTERNET

Perdon me equivoque corte y peque el otro permiso, si si, lo tengo a INTERNET pero da problemas

mocelet
07/02/16, 18:43:00
¿Y qué excepción te lanza al ejecutar el connect?

kriogeN
07/02/16, 18:56:59
Estás conectado por WiFi. No?

Enviado desde mi SM-G900F mediante Tapatalk

JOERCHA
09/02/16, 00:41:04
¿Y qué excepción te lanza al ejecutar el connect?

SOLUCIONADO:
Antes de hacer el connect hay que comprobar esto.

if (Build.VERSION.SDK_INT>9);

{
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().buil d();
StrictMode.setThreadPolicy(policy);
}

kriogeN
09/02/16, 07:14:36
No, esa no es la solución.

La solución está en la parte del código que no muestras, y es que seguro que estás haciendo el connect en el hilo principal, y al hacer un permitAll al StrictMode evitas que salte el NetworkOnMainThreadException.

¿Funciona lo que has hecho? Si, pero es de nivel chapucero no, lo siguiente.

mocelet
09/02/16, 08:13:44
Como dice kriogeN esa no es la solución, el tiempo que estés usando la conexión al FTP dejarás el móvil completamente bloqueado y sin que responda a los toques del usuario. Ya te encontrarás con eso más adelante.

La solución es que el código que se conecta y transfiera datos lo haga en un hilo independiente, ya sea con una AsyncTask o con un nuevo Thread.