Ejecutar código antes de cerrar aplicación

Iniciado por kiriost, 16 Marzo 2012, 17:51 PM

0 Miembros y 1 Visitante están viendo este tema.

kiriost

Tengo un problema. Estoy realizando una aplicación en C++ que se ingresa datos en una base de datos a través de un script PHP que está en el mismo servidor que la base de datos, ya que la bd no tiene acceso desde el exterior, sino que solo en localhost.

Ya tengo las funciones hechas que permiten el envío de datos. Estas funciones hacen el uso de sockets (Windows).

Yo quisiera hacer que cuando el programa se cierra, ya sea porque se le mande la señal de cerrado o se apague Windows, este envíe un comando POST al servidor mediante SOCKETS.

Para hacer esto usé atexit() pero me da un problema: cuando el programa recibe la señal de cierre, cierra las librerías de sockets y luego ejecuta la función que hay en atexit(), entonces no puedo hacer uso de sockets en esta función porque fue cerrada la librería para hacer esto.

Qué puedo hacer? Me podrían dar una buena solución para enviar datos a través de sockets una vez que el programa recibe la señal de cierre?

Gracias de antemanos.
http://www.godsys.com.ar > Programación. Hacking y Cracking. Sistemas. Desarrollo Web.
Java, C/C++, PHP, Python, Perl, HTML, Game-Hacking, Defacing, Desarrollo Web, GNU/Linux, y más

Sagrini

Podrías volver a abrir los sockets, por ejemplo. En linux lo mejor es usar signal (), y si no puedes utilizar destructores. Tú verás ;)

naderST

En el lado del servidor detectar cuando se cierre la conexión.

kiriost

Pero tengo un problema: el ingreso de datos a la base de datos se realiza a través de un script PHP del lado del servidor, porque la base de datos no tiene acceso desde el exterior.

Es posible mantener una conexión abierta entre mi programa (en Windows) y el servidor web mediante un script PHP?
http://www.godsys.com.ar > Programación. Hacking y Cracking. Sistemas. Desarrollo Web.
Java, C/C++, PHP, Python, Perl, HTML, Game-Hacking, Defacing, Desarrollo Web, GNU/Linux, y más