Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - PeKiN

#1
Gracias danyhack, pero la programación de sockets la controlo, lo que busco va un poco más allá y se trata de detectar un socket caido sin ser cerrado mediante el clásico "close()".
#2
Se me olvidó especificar que el entorno de programación es Linux. Gracias igualmente por la respuesta!
#3
Hola! me gustaría saber si existen funciones o mecanismos para detectar fácilmente si, en una conexión mediante sockets TCP, se ha perdido la conexión por caida repentina o cierre del otro extremo. Seria una situación del estilo Servidor con varios Clientes, los Clientes se conectan y se registran en una base de datos y quedan conectados. El problema surge si se pierde la conexión de forma fortuita con el cliente (un corte de luz en el cliente, por ejemplo), qué forma sencilla y eficaz podría implementarse para detectar y eliminar al cliente de dicho registro.

Un saludo!
#4
Programación C/C++ / Re: Temporizador en C
9 Junio 2011, 21:51 PM
Mi idea sería utilizar algo tipo la función select() y su timer, así contactar periódicamente con los servidores para comprobar que están disponibles y si alguno no respondiera, darlo de baja de la base de datos.
#5
Programación C/C++ / Temporizador en C
8 Junio 2011, 12:26 PM
Hola! me gustaría añadir a mi programa una solución para el siguiente problema. Se conectan y registran varios servidores (en una base de datos mysql), pero en el caso de que alguno caiga de forma fortuita, se queda como registrado y eso seria un error. Lo único que se me ocurre es comprobar periódicamente si ese servidor sigue vivo, ¿qué herramienta (función, método, etc..) podría utilizar para resolver este problema en C?

Gracias de ante mano

Saludos
#6
Programación C/C++ / Re: lapsus con punteros
30 Mayo 2011, 01:16 AM
Gracias Akai, perfecto, ya lo pillo.

Es que tenía entendido que el operador asterisco delante de una variable de tipo puntero, era para obtener "el contenido de", por tanto, en

*a=b;


lo veía como, el contenido de la dirección a la que apunta 'a' (que en principio no apunta a nada) le asigno el valor o contenido de 'b', y al no apuntar a nada aún esa 'a'..  :xD
#7
Programación C/C++ / Re: lapsus con punteros
30 Mayo 2011, 00:01 AM
Gracias por tu respuesta Akai, ahora bien, la diferencia esencial entre el código que me pusiste y este otro, ¿cual sería?


int *a;
int b;

a=b;

funcion(a);


#8
Programación C/C++ / lapsus con punteros
29 Mayo 2011, 23:38 PM
Hola! he tenido un problema muy básico con punteros y me gustaría que alguien me ilustrara práctica y teóricamente para quitarme las dudas.

Una función pedía como argumento un puntero y yo hice lo siguiente:

int *a;
funcion(a);


Y me daba violación de segmento.

Sin embargo, luego lo puse así:

int a;
funcion(&a);


Y ya funcionaba correctamente. Entiendo que el puntero, al declararlo, no apunte a nada y por eso al llamar la función no puede escribir nada. En el segundo caso, al declarar la variable, sí que reservo un espacio de memoria cuya direccion al obtenerla "&a" es como si fuera su propio puntero, apuntando a un destino ya existente, por eso puede escribir la función en esa variable y no hay error.
¿Es esto así?

Gracias de ante mano.
#9
Redes / Netfilter, iptables y tablas NAT
8 Abril 2011, 15:49 PM
Hola!! Tengo entendido que en general, los routers hacen un "nateo" automático, haciendo traduccion de direcciones de red. Una máquina línux, mediante el módulo netfilter, puede hacer de router y es posible configurar una tabla NAT con ciertas reglas, de modo que hariamos un "nateo" manual, ¿esto es correcto?
#10
Primeramente gracias por la respeusta Akai. Efectivamente, estoy en un sistema Unix, me había planteado utilizar sockets porque nunca antes usé tuberias, pero quizá sea una opción mas eficiente la de las tuberías. ¿podrias ponerme un ejemplo a nivel de código donde se utilicen estas ideas que me pones?

Gracias de ante mano!