Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Projet python] Probleme transmission

Anonyme
    26 mars 2015 à 19:46:46

    Bonjour, j'ai actuellement un problème très gênant sur mon programme. Quand un client se connecte dessus ( Le programme est sur une Raspberry pi) et envoie un message comme 'Jour', 'Mois','Ans' ou encore 'Fermer', la longueur de la chaîne de caractère reçu est toujours : "son nombre"+2.

    Donc par exemple j'envoie 'Ans' sur la raspberry pi il ne va rien se passer car le message et pas 'Ans' mais 'Ans**'.

    Si quelqu'un pourrait me dépanner s'il vous plait :)

    Voici le code du programme: 

    # -*- coding: utf-8 -*-
    
    import socket
    import RPi.GPIO as GPIO
    
    GPIO.setmode(GPIO.BOARD)
    GPIO.setwarnings(False)
    GPIO.setup(11,GPIO.OUT)
    GPIO.setup(16,GPIO.OUT)
    
    while True:
        
        GPIO.output(11,True)
        GPIO.output(16,False)
    
        ConnexionPrincipale=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        ConnexionPrincipale.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
        ConnexionPrincipale.bind(('', 20000))
        ConnexionPrincipale.listen(5)
        print("Le serveur ecoute a present sur le port 20000")
        print("Attente d'un client ... ")
        print("")
    
        ConnexionClient, InfosConnexion = ConnexionPrincipale.accept()
        MessageRecu = b"Client connectee"
        print(MessageRecu)
        print("")
    
        GPIO.output(11,False)
        GPIO.output(16,True
    
            while MessageRecu != b"Fermer":
                MessageRecu = ConnexionClient.recv(1024)
                
                if MessageRecu == b"Ans":
                    print("Demande donnee Annee ...")
                if MessageRecu == b"Mois":
                    print("Demande donnee Mois ....")
                if MessageRecu == b"Jour":
                    print("Demande donnee Jour ....")
            print("Fermeture de la connexion")
            ConnexionClient.close()
            ConnexionPrincipale.close()
    
    GPIO.output(11,False)
    GPIO.output(16,False)
    • Partager sur Facebook
    • Partager sur Twitter
      26 mars 2015 à 20:50:46

      Ligne 32. Pourquoi le bloc est-il indenté ?

      2 solutions :

      • MessageRecu = MessageRecu.strip()
      • MessageRecu.startswith(b'Ans') à la place de l'opérateur ==.
      • Partager sur Facebook
      • Partager sur Twitter
      Zeste de Savoir, le site qui en a dans le citron !
      Anonyme
        26 mars 2015 à 20:56:16

        Merci pour ton aide, pour le bloc a la ligne 32 j'ai juste du faire une erreur ^^, c'était pas voulu.
        • Partager sur Facebook
        • Partager sur Twitter

        [Projet python] Probleme transmission

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown