Partage
  • Partager sur Facebook
  • Partager sur Twitter

transmission d'information en réseau

    16 janvier 2018 à 22:58:57

    Bonjour à tous ,

    j'ai créer un programme client en réseau avec un autre programme serveur ( en socket). Et dans mon programme client je demande à l'utilisateur de saisir son nom et son prénom (prénom=input("Saisissez votre prénom:")) , je voulais savoir comment je pouvais recevoir cet information sur mon programme serveur , donc avoir accès au contenu de la variable prénom.

    Voilà merci pour vos futures réponses !

    • Partager sur Facebook
    • Partager sur Twitter
      17 janvier 2018 à 2:41:37

      Bonjour,

      Tout dépend de comment tu veux que tes programmes communiquent ... As-tu un serveur sur lequel tu veux faire des requètes HTTP, veux-tu utiliser des sockets, un serveur WebSocket ? (Je pourrais continuer encore longtemps).

      En espérant t'avoir aidé,

      Tyrion78

      • Partager sur Facebook
      • Partager sur Twitter
        17 janvier 2018 à 14:02:00

        Salut,

        Comme dit Tyrion78000...

        Si c'est en socket, logiquement, vous recevrez des bytes. Ce qui veux dire, que vous devez reconstituez ce que vous recevez... (Avec decode() et encode())

        Dans le sens, que vous recevrez pas une variable prénom, mais uniquement les réponses.

        Il faut donc, trouver une logique, pour envoyez les réponses dans le client. Ensuite, vous utilisez cette même logique, pour retrouver les réponses dans le serveur.

        Dans cet exemple client, je sépare le prénom et le nom, par un espace...

        ## Client:
        prenom = input("blabla")
        nom = input("blabla")
        
        a_envoyez = prenom + " " + nom ## On met un espace
        sock.send(a_envoyez.encode())

        Dans cet exemple serveur, je récupère le prénom et le nom, en séparant ce que je reçoit, par un espace...

        ## Server:
        recv = sock.recv(1024)
        recevoir = recv.decode()
        
        prenom, nom = recevoir.split() ## Séparez tous les espaces..

        N'hésitez pas pour les questions.

        Bonne chance

        A+



        • Partager sur Facebook
        • Partager sur Twitter
          17 janvier 2018 à 14:04:18

          Bah j'ai essayé ce que tu m'as montré nolimitech mais je reçois ça au niveau du serveur:

              recv = sock.recv(1024)

          NameError: name 'sock' is not defined

          Il ne comprend pas " sock " ???

          -
          Edité par Wakate-joker 17 janvier 2018 à 15:17:09

          • Partager sur Facebook
          • Partager sur Twitter
            18 janvier 2018 à 9:17:40

            Il faut au préalable avoir instancié et connecté une socket dans une variable sock.

            • Partager sur Facebook
            • Partager sur Twitter
              18 janvier 2018 à 15:34:18

              Salut,

              Comme dit entwanne.

              Je supposais que vous aviez déjà du code, pour vous connecter en socket et que vous saviez comment vous y prendre.

              Il existe beaucoup d'exemple sur internet.

              Mon exemple servait uniquement à vous démontrez comment envoyez des réponses par le client et recevoir ces réponses par le serveur.

              • Partager sur Facebook
              • Partager sur Twitter
                18 janvier 2018 à 22:37:21

                Oui j'ai déja du code et je me suis renseigné sur internet mais tout ce que j'ai compris est déja codé, je pensais que c'était bon .

                Si ca peut vous aider voilà mon code sur le serveur:

                import socket

                connexion_principale=socket.socket(socket.AF_INET, socket.SOCK_STREAM)

                connexion_principale.bind(('', 12800))

                connexion_principale.listen(5)

                connexion_avec_client, infos_connexion = connexion_principale.accept()

                Et pour le client :

                import socket

                connexion_avec_serveur= socket.socket(socket.AF_INET, socket.SOCK_STREAM)

                connexion_avec_serveur.connect(('localhost', 12800))

                -
                Edité par Wakate-joker 18 janvier 2018 à 22:38:38

                • Partager sur Facebook
                • Partager sur Twitter
                  19 janvier 2018 à 12:45:45

                  Bah du coup qu'est ce que j'ai raté concrètement ?

                  • Partager sur Facebook
                  • Partager sur Twitter
                    22 janvier 2018 à 16:34:29

                    Bah du coup qu'est ce que j'ai raté concrètement ? Je ne vois pas du tout ...

                    -
                    Edité par Wakate-joker 22 janvier 2018 à 16:35:20

                    • Partager sur Facebook
                    • Partager sur Twitter
                      22 janvier 2018 à 22:48:49

                      Du coup maintenant que vous savez ce que je veux faire , qu'est ce que je dois ajouter dans le code ?
                      • Partager sur Facebook
                      • Partager sur Twitter
                        22 janvier 2018 à 23:04:55

                        Quelque chose comme

                        prenom = input("blabla")
                        nom = input("blabla")
                         
                        a_envoyez = prenom + " " + nom ## On met un espace
                        sock.send(a_envoyez.encode())
                        

                        pour le client, et

                        recv = sock.recv(1024)
                        recevoir = recv.decode()
                         
                        prenom, nom = recevoir.split() ## Séparez tous les espaces..
                        

                        pour le serveur.

                        • Partager sur Facebook
                        • Partager sur Twitter
                          23 janvier 2018 à 18:51:17

                          Oui mais justement c'est ce que j'ai fais , seulement quand j'exécute mes deux programmes ça me met "  recv = sock.recv(1024)

                          NameError: name 'sock' is not defined"

                          • Partager sur Facebook
                          • Partager sur Twitter
                            24 janvier 2018 à 11:34:43

                            Il faut au préalable avoir instancié et connecté une socket dans une variable sock.

                            • Partager sur Facebook
                            • Partager sur Twitter
                              24 janvier 2018 à 16:29:10

                              J'ai lu tout le cours mais je vois pas du tout ce que je dois faire niveau code pour faire ça :/

                              • Partager sur Facebook
                              • Partager sur Twitter
                              Anonyme
                                24 janvier 2018 à 16:59:41

                                Peut-être que ton socket n'est pas créé pour le client ?
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  24 janvier 2018 à 23:16:27

                                  J'ai mis le code du client juste quelques messages avant si tu veux
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                  Anonyme
                                    24 janvier 2018 à 23:21:00

                                    Ce n'est pas cohérent, ton message d'erreur parle de la variable sock, hors dans ton code présenté, cette variable synonyme serait connexion_avec_serveur. Montre le code modifié en conséquence des remarques d'entwanne.

                                    -
                                    Edité par Anonyme 24 janvier 2018 à 23:21:36

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      25 janvier 2018 à 17:48:56

                                      Justement je ne comprend pas ce que je dois changer :/
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                      Anonyme
                                        25 janvier 2018 à 19:02:34

                                        Remplacer la variable sock dans le code d'entwanne par connexion_avec_serveur
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          25 janvier 2018 à 21:36:07

                                          entwanne a écrit:

                                          Quelque chose comme

                                          prenom = input("blabla")
                                          nom = input("blabla")
                                           
                                          a_envoyez = prenom + " " + nom ## On met un espace
                                          sock.send(a_envoyez.encode())
                                          

                                          pour le client, et

                                          recv = sock.recv(1024)
                                          recevoir = recv.decode()
                                           
                                          prenom, nom = recevoir.split() ## Séparez tous les espaces..
                                          

                                          pour le serveur.

                                          import socket
                                          #Client
                                          sock = socket.socket()
                                          import socket
                                          #serveur
                                          sock = socket.socket()
                                          >>> blabla
                                          Traceback (most recent call last):
                                            File "<pyshell#0>", line 1, in <module>
                                              blabla
                                          NameError: name 'blabla' is not defined
                                          Si seulement python savait ce qu'il devait faire !

                                          -
                                          Edité par AbcSxyZ 25 janvier 2018 à 21:38:04

                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                          Pour réussir dans la vie, je te conseille de te piquer à l'héro jusqu'à en crever.
                                            25 janvier 2018 à 22:20:22

                                            >>> blabla
                                            Traceback (most recent call last):
                                            File "<pyshell#0>", line 1in <module>
                                            blabla
                                            NameError: name 'blabla' is not defined
                                            Ici tu fais quoi concrètement ?
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              26 janvier 2018 à 14:28:06

                                              AbcSxyZ a écrit: > Si seulement python savait ce qu'il devait faire !

                                              Python sait très bien ce qu'il doit faire, encore faut-il le lui demander correctement. Ici le problème est que utilises Python 2, passe à la version 3.

                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                27 janvier 2018 à 17:35:23

                                                >>> python.sauvetage_ours_polaire()
                                                Traceback (most recent call last):
                                                  File "<pyshell#108>", line 1, in <module>
                                                    python.sauvetage_ours_polaire()
                                                NameError: name 'python' is not defined

                                                Je persiste. MarwanTragha je voulais te montrer qu'il ne connait pas ta socket de façon naturel.

                                                P.S.: Perdu entwanne. Sans print perso je sais pas quel version ça peut être (raw_input, ou quelques petits noms de modules mais sinon à la rigueur)

                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                Pour réussir dans la vie, je te conseille de te piquer à l'héro jusqu'à en crever.
                                                  27 janvier 2018 à 18:33:52

                                                  AbcSxyZ a écrit: > P.S.: Perdu entwanne. Sans print perso je sais pas quel version ça peut être (raw_input, ou quelques petits noms de modules mais sinon à la rigueur)

                                                  Je vous ai confondus, MarwanTragha et toi (c'est ça de ne pas avoir d'image de profil).

                                                  Comme le code présenté plus haut réalisait un input("blabla"), j'ai effectivement pensé à un input que Python chercherait à interpréter, donc à Python 2.

                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    28 janvier 2018 à 17:58:05

                                                    Ok mais du coup qu'est ce que python 3 me permet de faire de plus comparé à python 2 ?
                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      30 janvier 2018 à 22:26:42

                                                      Ok mais du coup qu'est ce que python 3 me permet de faire de plus comparé à python 2 ?
                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        30 janvier 2018 à 23:23:33

                                                        google >" différence python 2 et 3"

                                                        1er lien > http://apprendre-python.com/page-syntaxe-differente-python2-python3-python-differences

                                                        La recherche était assez difficile, mais j'ai vraiment fait ce que j'ai pu.

                                                        -
                                                        Edité par AbcSxyZ 30 janvier 2018 à 23:24:36

                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                        Pour réussir dans la vie, je te conseille de te piquer à l'héro jusqu'à en crever.
                                                          31 janvier 2018 à 14:32:54

                                                          Non mais je parle précisement de mon cas
                                                          • Partager sur Facebook
                                                          • Partager sur Twitter

                                                          transmission d'information en réseau

                                                          × 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