Duda sobre colas de mensaje

Temas relacionados con la programación de aplicaciones que funcionan sobre un servidor.
Responder
Mensaje
Autor
Clarita20
Mensajes: 1
Registrado: 02/11/2009 2:42 am

Duda sobre colas de mensaje

#1 Mensaje por Clarita20 » 02/11/2009 2:57 am

Hola chicos¡¡¡¡¡

Tengo un problemilla con el que espero que me podais echar una mano,estoy cansada de pelearme con el C:cry: . El programa que tengo que hacer se trata de un servidor al estilo FTP que mediante colas de mensaje,cuando el cliente se conecte el servidor le pase el nombre del fichero de texto que previamente se le ha pedido al cliente. De momento llevo el siguiente codigo escrito en el que le paso por teclado un mensaje,pero no se como hacerlo funcionar para usar ficheros de texto

#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/msg.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>


struct mensaje
{
long int tipo; /* tipo de msj*/
char texto[256]; /* datos del mensaje */
};



int main(int argc, char *argv[])
{

int id_cola;
long int tipo;
struct mensaje m;


if (argc!=3)
{
printf("Error en número de argumentos\n");
exit(-1);

}
id_cola=msgget((key_t)1234,IPC_CREAT|0666);
if (id_cola==-1)
{
printf ("La cola no se ha podido crear\n");
exit (-1);
}

sscanf(argv[1],"%ld",&tipo);
m.tipo=tipo;
strcpy(m.texto,argv[2]);
if (msgsnd (id_cola,&m,256,0 )==-1)
{
printf("Error al enviar mensaje\n");
exit(-1);
}
sleep(5);
if (msgrcv (id_cola,&m,256,0,0)==-1)
{
printf("Error al recibir mensaje\n");
exit(-1);
}
if ((m.tipo==tipo)&&(strcmp(m.texto,argv[2])==0)){

printf("Nadie ha recogido el mensaje\n");
msgctl(id_cola,IPC_RMID,NULL);


}
else
{
printf("%s\n",m.texto);
}


return 0;
}


Muchas gracias por vuestra ayuda¡¡¡¡¡ bss :roll:

Responder

¿Quién está conectado?

Usuarios navegando por este Foro: Google [Bot] y 1 invitado