Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-10-2016
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola de nuevo.

Perdón no ví que el foro era C++, entonces sería:
Código PHP:

AnsiString IndyVersion
()
{
  
AnsiString ver;
  
TIdHTTPIdHTTP = new TIdHTTP(NULL);

  try {
    
ver IdHTTP->Version;
  } 
__finally {
    
delete IdHTTP;
  }

  return 
ver;

(por supuesto que también podes hacerlo volcando el componente en tiempo de diseño, ahorrándote la creación y destrucción)

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 13-10-2016 a las 22:30:40.
Responder Con Cita
  #2  
Antiguo 14-10-2016
MARX MARX is offline
Miembro
NULL
 
Registrado: abr 2016
Posts: 35
Poder: 0
MARX Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola de nuevo.

Perdón no ví que el foro era C++, entonces sería:
Código PHP:

AnsiString IndyVersion
()
{
  
AnsiString ver;
  
TIdHTTPIdHTTP = new TIdHTTP(NULL);

  try {
    
ver IdHTTP->Version;
  } 
__finally {
    
delete IdHTTP;
  }

  return 
ver;

(por supuesto que también podes hacerlo volcando el componente en tiempo de diseño, ahorrándote la creación y destrucción)

Saludos
Gracias ecfisa, no lo pude hacer andar de esa manera.
Lo que hice fue hacer TidTCPServer1->Version y lo puse en un Edit. La versión que me acusa es la 10.6.2.5263, que supongo sera la versión del Indy. Así que no debería tener problema si cambio el el valor del ConnectTimeout. Tendré que buscar más información en la red
Gracias una vez mas ecfisa. Siempre solucionandome problemas.
De más está decir que si saben algo sobre el problema principal planteado me avisen.
Desde ya muchas gracias.

Saludos
MARX
Responder Con Cita
  #3  
Antiguo 26-10-2016
Snaked Snaked is offline
Baneado
NULL
 
Registrado: sep 2016
Posts: 102
Poder: 0
Snaked Va por buen camino
hola MARX una posible solucion que se me ocurre, es que teniendo un servidor en internet tipo hosting linux, crees un archivo_token en algun lugar del servidor y que dicho archivo contenga algo asi como una linea que ponga SERVER_STATUS=0 o SERVER_STATUS=1 de forma que consultando por FTP el contenido de ese archivo sepas si esta en marcha tu aplicacion tipo SERVER o no

Por supuesto la aplicacion SERVIDORA tendria a su vez, que cambiar ese SERVER_STATUS segun entrase en funcionamiento o saliese
y lo mismo respecto a los clientes......refiriendonos a la parte "aplicacion en ejecucion"....es una posible solucion que funciona, yo mismo a veces he utilizado algo asi para algunas cosas....otra cosa a tener en cuenta seria en ese fichero "Token" anotar la direccion IP actualizada de los terminales que se conecten a la red

en la ayuda de C++ Builder viene como crear conectar etc un cliente de FTP sencillo

Última edición por Snaked fecha: 26-10-2016 a las 17:05:39.
Responder Con Cita
  #4  
Antiguo 26-10-2016
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.913
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
No.

Porque la app puede caerse ANTES de poder "Cambiar" su estado.

La *UNICA* forma confiable es intentando al conexion y usando timeouts. NO HAY DE OTRA.

Esto se conoce como el problema de los 2 generales:

https://es.wikipedia.org/wiki/Proble..._dos_generales
Cita:
En computación, el Problema de los dos generales, también llamado Problema de las dos armadas o Problema del Ataque Coordinado, es un experimento mental que ilustra los problemas y retos de diseño involucrados en la coordinación de una acción a través de una comunicación a través de un vínculo poco fiable.
Existen formas y algoritmos sofisticados que ayudan, pero todo se reduce al final a lo anterior. NO HAY FORMA de hacer esto confiable, solo con un grado de certeza.

Y lo que te estoy diciendo es por mucho lo mas simple que puede funcionar. El truco, como dice el articulo:

Cita:
Un enfoque pragmático para hacer frente al problema de los dos generales es utilizar esquemas que acepten la incertidumbre del canal de comunicaciones y no intente eliminarla, sino mitigarla hasta un grado aceptable.
__________________
El malabarista.
Responder Con Cita
  #5  
Antiguo 26-10-2016
MARX MARX is offline
Miembro
NULL
 
Registrado: abr 2016
Posts: 35
Poder: 0
MARX Va por buen camino
Gracias por sus respuestas.
Solucioné el problema hace unos días utilizando el timeout en 500 y hago la comprobación de la conexión de las terminales en otro hilo.
Investigando el tema que me propuso mamcx sobre los thread a parte, hago la comprobación del estado de las terminales en paralelo y ya no se me cuelga el programa mientras chequea las terminales.
Muchas gracias a todos. Me han ayudado mucho y he aprendido a utilizar una herramienta muy importante.

Saludos y hasta la próxima
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
¿ Cómo saber que cliente de correo está instalado por defecto en un PC ? Aldo Internet 5 12-06-2013 11:58:15
Como saber si una aplicacion esta instalada ColdFusion Varios 7 07-04-2009 02:45:51
Puedo saber si esta Conectada? (InterBase) marceloalegre Conexión con bases de datos 2 17-08-2005 21:35:12
Saber si una unidad de Red esta conectada comba API de Windows 2 18-04-2005 19:57:02
Como Saber Que Aplicacion Se Esta Ejecutando ??? TomasCampeon API de Windows 1 12-08-2004 03:23:26


La franja horaria es GMT +2. Ahora son las 16:34:01.


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