Bonjour,

Je suis en train de faire un serveur pour réceptionner des messages en mode socket.
Le serveur fonctionne bien mais j'ai un problème pour exécuter un fonction de traitement sur le message avant de retourner la réponse.
Dans le code suivant, comment puis je faire pour être sûr que j'ai reçu le message entier.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
class IDTMVT(SocketServer.BaseRequestHandler):
    def handle(self):
        message=""
        while True:
            donneesRecues = self.request.recv(8192)
            message+=donneesRecues
            if not donneesRecues :
                break
            self.request.sendall(reverseMessage(message))
        self.request.close()
j'aimerai exécuter le self.request.sendall(...) à l'extérieur du while, mais ca bloque. Mon soft d'émission de messages attend le retour en vain.
Si par contre je laisse self.request.sendall(...) dans le while, j'obtiens bien un retour dans mon soft d'émission de messages.

En l'état j'ai bien le retour, mais je peux avoir une succession de retour si par exemple le message dépasse les 8192 octets alors que je souhaite n'en faire qu'un et un seul, une fois le message entièrement reçu et traité.

Merci d'avance