C/Visual C - Problemas con SIGUSR

 
Vista:

Problemas con SIGUSR

Publicado por Cristina (1 intervención) el 03/08/2007 10:34:16
Hola a todos!

Estoy haciendo una aplicación cliente-servidor. Cada cliente tiene su propio servidor dedicado. Para establecer comunicacion entre clientes, se debe pasar por los servidores dedicados, de manera de si un cliente kiere mandarle una petición al otro, se la envia a su servidor dedicado y éste al servidor dedicado del cliente 2.

La comunicación entre los dos dedicados la hago mediante el signal SIGUSR2.

INICIALIZACIÓN: signal (SIGUSR2, ComunicacioDedicats);

LLAMADA: kill (pid, SIGUSR2);

FUNCIÓN:
void ComunicacioDedicats () {
char buffer[200];
int a;

bzero (buffer, 200);

switch (sistema->accio.trama) {
case 'A':
// Eliminar recurs
write (1, "entra en ComunicacioDedicats\n", 40);
fflushnou();
TEliminacio (buffer, sistema->accio.login, sistema->accio.propietari, strlen(sistema->accio.recurs), sistema->accio.recurs);
printf ("trama enviada en comunicacio dedicats: %s\n", buffer);
write (newsock, buffer, strlen(buffer));
fflushnou ();
a = read (newsock, buffer, 200);
buffer[a]='\0';
printf ("trama confirmacio rebuda en comunicacio dedicats: %s\n", buffer);
fflushnou();
write (1, "sale de ComunicacioDedicats\n", 40);

break;
}
}

El programa me compila sin problemas, pero a la hora de ejecutarlo, cuando entra en la función , se para la ejecución y me muestra por pantalla el mensaje "User defined signal 2" tal y como sigue:

entra en ComunicacioDedicats
trama enUser defined signal 2
cygnus:~/>

No se si me he explicado lo suficientemente bien, la verdad es que es un poco complicado...
Espero que alguien me pueda ayudar.

Muchas gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder