Changes between Version 9 and Version 10 of SujetTP4-2016


Ignore:
Timestamp:
Mar 13, 2016, 7:13:01 PM (9 years ago)
Author:
franck
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SujetTP4-2016

    v9 v10  
    2626
    2727Vous pouvez tester les programmes qui vous sont proposés.
     28Je 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
     39import os, time
     40
     41pipe_name = '/tmp/myfifo'
     42
     43if not os.path.exists(pipe_name):
     44    os.mkfifo(pipe_name)
     45
     46pipe_out = open(pipe_name,'w')
     47
     48i=0;
     49while 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
     55pipe_out.write("end\n")
     56}}}
     57
     58**reader.py**
     59- Que fait readline ?
     60
     61{{{#!python
     62#!/usr/bin/env python
     63import os, time
     64
     65pipe_name = '/tmp/myfifo'
     66
     67if not os.path.exists(pipe_name):
     68    os.mkfifo(pipe_name)
     69
     70pipe_in = open(pipe_name,'r')
     71while str != "end\n" :
     72    str = pipe_in.readline()
     73    print '%s' % str,
     74
     75}}}
    2876Vous 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.
    3079
    3180== 2. Création d'un serveur fake ==
    3281
    33 Le but de cette première partie est de réaliser le programme suivant 
     82Le but de cette première partie est de réaliser le programme suivant:
    3483
    3584[[Image(htdocs:png/fake2server.png,nolink,400px)]]
     
    4190- lorsqu'il reçoit un message, il l'affiche et il renvoie dans la fifo f2s la dernière valeur lue sur stdin.
    4291
    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
     92Vous commencez par récuperer l'[attachment:fake.tgz archive] qui donne un point de dépoart.
    4993{{{
    5094fake
     
    5397└── fake.c
    5498}}}
     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
    55107Vous devez :
    56 
    571081. modifier le select dans fake pour lire les deux fifos d'entrée stdin et s2f.
    581092. modifier server.py pour lire la valeur lue sur stdin.
     110
     111{{{#!c
     112}}}
    59113
    60114== 3. Création d'un serveur web ==