Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Desarrollo en Delphi para Android
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy


Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-03-2015
Fossy Fossy is offline
Miembro
 
Registrado: feb 2006
Posts: 65
Poder: 19
Fossy Va por buen camino
Problema con puertos usando Indy

Hola amigos:

Hoy me he puesto a probar el tema de sockets, puertos y demás usando Indy para la plataforma Android, pero cual es mi sorpresa que la app que genero para mi móvil no escucha ningún puerto (da igual el que le configure). Averiguo la IP pública con whatsmyip y desde el programa cliente que tengo en el PC le envío un mensaje usando idTCPClient (en el móvil uso idTCPServer) y nada, no es capaz de conectar porque dicho puerto en la IP pública en cuestión está cerrado (no responde) y recibo el error Socket error 10060, timed out.

Esto hace que me pregunte si la IP pública que recibimos en los móviles es compartida, o bien está tras un proxy con todo capado menos los puertos básicos.

¿Alguna experiencia al respecto?.

Gracias!.
Responder Con Cita
  #2  
Antiguo 09-03-2015
Fossy Fossy is offline
Miembro
 
Registrado: feb 2006
Posts: 65
Poder: 19
Fossy Va por buen camino
Actualizo:

Acabo de hacer pruebas en local (IP local) y funciona perfectamente, o sea, que mi programa cliente y servidor están perfectos.

Me quedaría saber qué está pasando con las IP públicas de los móviles, por si se les puede dar "alguna vuelta" para que reciban datos por los puertos.

Gracias!.
Responder Con Cita
  #3  
Antiguo 10-03-2015
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.278
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Si buscas por Internet encontrarás artículos sobre cómo conocer los puertos abiertos de tu dispositivo (la mayoría deben estar cerrados, cosa que no es de extrañar).
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #4  
Antiguo 10-03-2015
Fossy Fossy is offline
Miembro
 
Registrado: feb 2006
Posts: 65
Poder: 19
Fossy Va por buen camino
Gracias Neftali, pero si el puerto a usar estuviera cerrado no funcionaría tampoco con una IP local.

Estoy usando exactamente el puerto 8001, que como te digo, conectando el móvil a la Wifi de casa, responde perfectamente. Sin embargo al quitar la wifi para obtener Internet del operador, envío mensajes a su IP, puerto 8001 y nada de nada. De hecho no responde ni a los pings con la IP pública.

Me da la impresión que es una IP compartida para X terminales que estén bajo la misma antena, todo bajo un Proxy extremadamente capado.

Un saludo!!.

Edito:

Por cierto, ese artículo es para conocer los puertos abiertos del terminal, sin que ello signifique que sean puertos disponibles, es decir, que son puertos abiertos por aplicaciones. Mi propia App abre el 8001 como Unknow, y debería aparecer en esa lista usando nmap. Te lo digo porque si alguna vez se te ocurre usar un puerto de esos vas a crear un conflicto con la App que lo tenga abierto.

La única forma de mantener los puertos cerrados y sólo abrir bajo permiso es mediante reglas de Iptables. En un móvil concretamente puedes abrir por defecto el puerto que quieras.

Última edición por Fossy fecha: 10-03-2015 a las 10:34:34.
Responder Con Cita
  #5  
Antiguo 10-03-2015
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.278
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Fossy Ver Mensaje
Gracias Neftali, pero si el puerto a usar estuviera cerrado no funcionaría tampoco con una IP local.
El problema es que la configuración que tú utilizas es diferente si te conectas dentro de una red local por WIFI, que si te conectas a través de internet. Los puertos por un camino y por otro son (y deben serlo) diferentes.

Es como si estuvieras entrando a la misma casa por 2 puertas distintas. La casa es la misma, pero las cerraduras que tenga cada puerta no tienen nada que ver, y las llaves y los cerrojos son totalmente distintos.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #6  
Antiguo 10-03-2015
Fossy Fossy is offline
Miembro
 
Registrado: feb 2006
Posts: 65
Poder: 19
Fossy Va por buen camino
Perdona neftali pero no estás en lo correcto.

Creo que estás mezclando la IP pública del router ADSL con la IP local de una RED con todas sus consecuencias.

En una red local obviamente no puedes acceder a un puerto de un ordenador si vienes desde Internet (bueno, si se puede si haces un enrutamiento).

Un móvil (u ordenador) se comporta exactamente igual respecto a puertos tanto si está conectado a una red local o directo a Internet (con módem usb por ejemplo). La configuración de estos no varía, y sólo te falla, como te digo anteriormente, si intentas acceder a ellos desde otra IP distinta como puede ser la pública de la ADSL, que podría llegar pero bajo NAT del router.

Un móvil con la IP 192.168.1.50 (local), y el mismo móvil con la IP 37.112.55.80 (pública) tiene exactamente el mismo comportamiento, es decir, si accedes a el a través de la IP local y el puerto te escucha, al desconectarlo y conectar con la pública debe hacer exactamente lo mismo. Si no lo hace es porque hay algo capado de por medio.

Para que lo entiendas de otra manera, tu ordenador con Windows y un cortafuegos bien puesto capará los puertos tanto si accedes a el en local como desde el exterior, ¿o te crees que porque accedas en local el ordenador tiene otro comportamiento?. Eso lo hace el ROUTER, no el ordenador ni el móvil.

Un saludote!!.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Transferir archivos usando los componentes Indy cacu Varios 2 16-02-2015 09:35:24
Usando Content-Type con Indy MAXIUM Internet 2 13-09-2014 23:33:19
Varios puertos a la escucha Indy 10? Jhonjhon_123 Internet 2 09-08-2013 03:27:34
Conflicto de puertos con Indy davidrgh Internet 0 16-01-2012 14:06:47
Problema al enviar Email con adjuntos usando el componente Idsmtp de las indy Nbull Internet 2 22-11-2004 09:23:38


La franja horaria es GMT +2. Ahora son las 14:57:05.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi