
# Version très propre: c'est possible de la faire plus compacte et
# moins lisible.
def recv_exactly (s, taille_exacte):
    taille_qui_reste = taille_exacte
    octets_déjà_reçus = b''
    while taille_qui_reste > len (b''):
        # Il faut reçevoir un autre morceau :
        morceau = s.recv (taille_qui_reste)
        octets_déjà_reçus = octets_déjà_reçus + morceau
        taille_qui_reste = taille_qui_reste - len (morceau)
        print ("Il restent maintenant", taille_qui_reste, "octets à reçevoir")
    return octets_déjà_reçus
