Changes between Version 9 and Version 10 of SujetTP4-2016
- Timestamp:
- Mar 13, 2016, 7:13:01 PM (9 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
SujetTP4-2016
v9 v10 26 26 27 27 Vous pouvez tester les programmes qui vous sont proposés. 28 Je vous demande de lire les codes en commençant par les programmes python, en répondant aux questions 29 30 **writer.py** 31 - Dans quel répertoire est créee la fifo ? 32 - Quelle différence mkfifo et open ? 33 - Pourquoi tester que la fifo existe ? 34 - A quoi sert flush ? 35 - Pourquoi ne ferme-t-on pas la fifo ? 36 37 {{{#!python 38 #!/usr/bin/env python 39 import os, time 40 41 pipe_name = '/tmp/myfifo' 42 43 if not os.path.exists(pipe_name): 44 os.mkfifo(pipe_name) 45 46 pipe_out = open(pipe_name,'w') 47 48 i=0; 49 while i < 5: 50 pipe_out.write("hello %d fois from python\n" % (i+1,)) 51 pipe_out.flush() 52 time.sleep(1) 53 i=i+1 54 55 pipe_out.write("end\n") 56 }}} 57 58 **reader.py** 59 - Que fait readline ? 60 61 {{{#!python 62 #!/usr/bin/env python 63 import os, time 64 65 pipe_name = '/tmp/myfifo' 66 67 if not os.path.exists(pipe_name): 68 os.mkfifo(pipe_name) 69 70 pipe_in = open(pipe_name,'r') 71 while str != "end\n" : 72 str = pipe_in.readline() 73 print '%s' % str, 74 75 }}} 28 76 Vous allez remarquer que lorsque le vous lancer un écrivain (en C ou en Pyhton) rien ne se passe tant que vous n'avez pas lancé un lecteur. 29 Expliquez le phénomème. 77 78 - Expliquez le phénomème. 30 79 31 80 == 2. Création d'un serveur fake == 32 81 33 Le but de cette première partie est de réaliser le programme suivant 82 Le but de cette première partie est de réaliser le programme suivant: 34 83 35 84 [[Image(htdocs:png/fake2server.png,nolink,400px)]] … … 41 90 - lorsqu'il reçoit un message, il l'affiche et il renvoie dans la fifo f2s la dernière valeur lue sur stdin. 42 91 43 - Le serveur Python est lancé et arrêté, il se comporte comme se comportera le script CGI. 44 - Quand le serveur python démarre, 45 - il envoie un message sur la fifo s2f 46 - puis il lit la fifo s2f et affiche le résultat. 47 48 Vous récuperez l'[attachment:fake.tgz archive] qui donne un point de dépoart 92 Vous commencez par récuperer l'[attachment:fake.tgz archive] qui donne un point de dépoart. 49 93 {{{ 50 94 fake … … 53 97 └── fake.c 54 98 }}} 99 100 - Dans un premier terminal, compilez et démarrez fake. 101 - Dans un autre terminal, exécuter ./server.py 102 - Le programme "server" Python est lancé et arrêté, il se comporte comme se comportera le script CGI. 103 - Quand le server python démarre, 104 - il envoie un message sur la fifo s2f 105 - puis il lit la fifo s2f et affiche le résultat. 106 55 107 Vous devez : 56 57 108 1. modifier le select dans fake pour lire les deux fifos d'entrée stdin et s2f. 58 109 2. modifier server.py pour lire la valeur lue sur stdin. 110 111 {{{#!c 112 }}} 59 113 60 114 == 3. Création d'un serveur web ==