Advertisement
Guest User

Untitled

a guest
Apr 5th, 2012
46
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.73 KB | None | 0 0
  1. #include <sys/types.h>
  2. #include <sys/ipc.h>
  3. #include <sys/msg.h>
  4. #include <unistd.h>
  5. #include <stdio.h>
  6. #include <signal.h>
  7. #include <stdlib.h>
  8. #include <string.h>
  9.  
  10.  
  11.  
  12. typedef struct {
  13. float op1;
  14. float op2;
  15. float resultat;
  16. char operation;
  17.  
  18. }mess;
  19.  
  20. struct msg_struct {
  21. long type;
  22. pid_t pids;
  23. mess calcul;
  24. }
  25.  
  26. =>>>C'EST LE HEADER QUI S'APPELLE msgheader.h
  27.  
  28.  
  29. #include "msgheader.h" /*inclusion du header contenant la structure des messages*/
  30.  
  31. #define MSGKEY 50 /* cle d'entree dans la table d'IPC (cf. ipcs)
  32. doit etre la meme que celle du client.
  33. Il faudrait la mettre dans un fichier
  34. de type .h qui serait inclus par
  35. la client et le serveur !!!!\n [] |
  36. */
  37.  
  38. int main (int argc,char *argv[])
  39. {
  40. /* variables qui vont nous être utiles */
  41. float oper1,oper2,result;
  42. char operat;
  43. key_t cle;
  44. pid_t pid_client;
  45. struct msg_struct mes;
  46. int msg_id;
  47.  
  48.  
  49.  
  50. if((cle=ftok(argv[1],0))==-1) /*création de la clé et vérification erreurs */
  51. {
  52. perror("Erreur \n");
  53. exit(10);
  54. }
  55.  
  56. /*création de la file*/
  57. msg_id= msgget(cle,0666|IPC_CREAT);
  58.  
  59. while(1)
  60. {
  61. printf(" en attente de message ..........\n");
  62. msgrcv(msg_id,&mes,sizeof(pid_t),1L,0);
  63. pid_client=mes.pids;
  64. oper1=mes.calcul.op1;
  65. oper2=mes.calcul.op2;
  66. operat=mes.calcul.operation;
  67. if(operat=='+')
  68. {
  69. result=oper1+oper2;
  70. }
  71.  
  72.  
  73. mes.type=pid_client;
  74. mes.pids=getpid();
  75. mes.calcul.resultat=result;
  76.  
  77. msgsnd(msg_id,&mes,sizeof(pid_t),0);
  78. }
  79.  
  80. return 0;
  81. }
  82.  
  83.  
  84. ET CA C'EST LE serveur.c
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement