IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Calcul scientifique Python Discussion :

Problème TCP client serveur [Python 3.X]


Sujet :

Calcul scientifique Python

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2021
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2021
    Messages : 59
    Par défaut Problème TCP client serveur
    Bonjour Tous le monde,

    Je suis entrain de créer une server-client. Je souhaite enregistrer les messages envoyés par le client. Mais je rencontre un problème; C'est-à-dire, il continue à envoyer le message. Le dernier boucle while ne s'arrête pas; Pouvez-vous me dire où se trouve mon problème ?. Et je n'arrive pas enregistré sur les conversations sur le fichier text.txt

    programme fichier:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    import socket
    import os
     
    host = '127.0.0.1'
    port = 4001
    ClientSocket = socket.socket()
    print('Attend pour la connexion')
     
    try :
        ClientSocket.connect((host,port))
    except socket.error as e:
        print(str(e))
     
    Response = ClientSocket.recv(1024)
     
    while True:
        Input = input('Votre message')
        if Input == "Dossier":
            print("Saisir le nom de fichier")
            demande = input()
            fichier = open(demande,"rb")
            l = fichier.read(1024)
            print('entrer un nom de fichier')
            demande1 = os.mkdir("/home/deeloshan/apprendre_projet_suisse/projet_1/test.txt")
            while(l):
                ClientSocket.send(l)
                l = fichier.read(1024)
     
        ClientSocket.send(str.encode(Input))
        Response = ClientSocket.recv(2048)
     
        print(Response.decode('utf-8'))
        filename = 'text.txt'
        file1 = open(filename,"w")
     
        while(Response):
            file1.write(Response.decode('utf-8'))
        file1.close()
     
     
     
    ClientSocket.close()
    programme serveur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    import socket
    from _thread import *
     
    host = '127.0.0.1'
    port = 4001
    ThreadCount = 0
     
    def client_handler(connection):
        connection.send(str.encode("You are now connected to the replay erver... Type BYE to stop"))
        while True:
            data = connection.recv(2048)
            message = data.decode('utf-8')
            if message == 'BYE':
                break
            reply = f'Server : {message}'
            connection.sendall(str.encode(reply))
        connection.close()
     
    def accept_connections(ServerSocket):
        Client, address = ServerSocket.accept()
        print('Connected to :' + address[0] + ':'+str(address[1]))
        start_new_thread(client_handler,(Client,))
     
    def start_server(host,port):
        ServerSocket = socket.socket()
        try:
            ServerSocket.bind((host, port))
        except socket.error as e:
            print(str(e))
        print(f'Server  is listing on the port{port}')
        ServerSocket.listen()
     
        while True:
            accept_connections(ServerSocket)
    start_server(host, port)

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 679
    Par défaut
    Salut,

    Citation Envoyé par tuba uba Voir le message
    Pouvez-vous me dire où se trouve mon problème ?
    Il y en a plusieurs

    Le premier est que le serveur boucle tant qu'il n'a pas reçu "BYE".

    Côté client, si on écrit ligne 36 une chose comme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        while(Response):
            file1.write(Response.decode('utf-8'))
    par quelle magie Response pourrait passer à False?
    note: si Response est toujours False, on n'entre pas dans la boucle (et rien n'est écrit dans le fichier) et s'il est True, on entre dans la boucle sans jamais en ressortir.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 20/04/2020, 15h59
  2. TCP Problème Latence Client/Serveur
    Par royal380 dans le forum C
    Réponses: 8
    Dernier message: 18/05/2011, 02h22
  3. Problème cube client/serveur
    Par zenati007 dans le forum Cognos
    Réponses: 1
    Dernier message: 15/04/2008, 18h13
  4. [TCP] Client/Serveur avec les composants Indy
    Par bakaneko dans le forum C++Builder
    Réponses: 2
    Dernier message: 14/02/2007, 12h47
  5. [ServerSocket]Problème communication client-serveur udp sur linux
    Par gdecrouez dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 29/09/2006, 14h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo