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

Réseau/Web Python Discussion :

echec de connexion


Sujet :

Réseau/Web Python

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tchad

    Informations forums :
    Inscription : Juillet 2013
    Messages : 114
    Points : 47
    Points
    47
    Par défaut echec de connexion
    Bonjour!

    J'ai un soucis lorsque j'essaie de me connecter avec le client sur le serveur (qui marche très bien).

    voila le code cote 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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
     
    # -*- coding:Utf-8 -*-
     
    # Définition d'un serveur réseau gérant un système de CHAT simplifié.
    # Utilise les threads pour gérer les connexions clientes en parallèle. 
     
    HOST = '172.16.60.54'  
    PORT = 45000
    #HOST = '127.0.0.1'  
    #PORT = 40000 
    import socket, sys, threading, getpass ,  time 
    from ConnexionBD import * 
    from SessionInachevee import *
    from Session_J import *
     
     
    class ThreadClient(threading.Thread):
        '''dérivation d\'un objet thread pour gérer la connexion avec un client'''  
     
        def __init__(self, conn, adr):  
            threading.Thread.__init__(self) 
            self.connexion = conn
            self.adresse = adr 
     
        def run(self):
            # Dialogue avec le client :
            nom = self.getName()  
            # Chaque thread possède un nom              
            msgClient = self.connexion.recv(1024).decode("Utf8")                                        
            id_post = id_poste(msgClient) 
            if(exisitSessionPoste(id_post) != 0):
                session = Session_J("", "", "", "", "", "") 
                if(session.utilConnectePriorite(id_post)<5):
                    duree = session.dureeRestante(id_post)
                    if(duree > 0): 
                        inacheve = SessionInachevee("", "", "")
                        inacheve.inserer(id_post, duree) 
     
                extraireSession(id_post)             
                miseAjourPoste(id_post, 'N')  
                miseAjourEnreg() 
            else:
                self.stop() 
            print(msgClient)            
            # Fermeture de la connexion : 
            self.connexion.close()		# couper la connexion côté serveur
            del conn_client[nom]		# supprimer son entrée dans le dictionnaire 
     
            print("Client %s déconnecté." % nom)
     
    # Le thread se termine ici
     
        def stop(self):
            self.Terminated = True
     
     
    # Initialisation du serveur - Mise en place du socket :
     
    mySocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)   
    try:
    	mySocket.bind((HOST, PORT))
    except socket.error:
    	print("La liaison du socket à l'adresse choisie a échoué.")   
    	sys.exit()
    print("Controlleur prêt, en attente de requêtes ...")
    mySocket.listen(50) 
     
    # Attente et prise en charge des connexions demandées par les clients :
     
    conn_client = {}
     
    # dictionnaire des connexions clients
     
    while 1:
    	connexion, adresse = mySocket.accept() 
    	# Créer un nouvel objet thread pour gérer la connexion :
    	th = ThreadClient(connexion, adresse) 
    	th.start()
    	# Mémoriser la connexion dans le dictionnaire : 
    	it = th.getName() 
    	# identifiant du thread 
    	conn_client[it] = connexion
    	print("Client %s connecté, adresse IP %s, port %s." %(it, adresse[0], adresse[1]))
    	# Dialogue avec le client :
    	#msg ="Vous etes connecte. Envoyez vos messages."
    	#connexion.send(msg.encode("Utf8"))
    et le cote client:
    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
    #!/usr/bin/python
    # -*- coding:Utf-8 -*-
     
    # Définition d'un client réseau gérant en parallèle l'émission
    # et la réception des messages (utilisation de 2 THREADS). 
     
    host = '172.16.60.54' 
    port = 45000 
     
    import socket, sys, threading , getpass 
     
    class ThreadControle(threading.Thread):
    	"""objet thread gérant la réception des messages"""
    	def __init__(self, conn):
    		threading.Thread.__init__(self)
    		self.connexion = conn				# réf. du socket de connexion
     
    	def run(self):		
    		message_emis = socket.gethostname()
    		self.connexion.send(message_emis.encode("Utf8"))		 						
    		self.connexion.close()
     
    	def stop(self):
    	        self.Terminated = True
     
     
    # Programme principal - Établissement de la connexion :
     
    connexion = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    try:
    	connexion.connect((host, port))
    except socket.error:
    	print("La connexion a échoué.")
    	sys.exit()
    print("Connexion établie avec le serveur.")
     
    # Dialogue avec le serveur : on lance deux threads pour gérer
    # indépendamment l'émission et la réception des messages :
     
    th_C = ThreadControle(connexion)
    th_C.start()
    et voila l'erreur qui m'affiche quand un client qui veut se connecter:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    root@brahim:/home/brahim/Bureau/workspace_cherrypy# python controle_connexion_seveur.py
    Controlleur prêt, en attente de requêtes ...
    ^CTraceback (most recent call last):
      File "controle_connexion_seveur.py", line 75, in <module>
        connexion, adresse = mySocket.accept() 
      File "/usr/lib/python2.7/socket.py", line 202, in accept
        sock, addr = self._sock.accept()
    KeyboardInterrupt
    cordialement.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut
    Le ^C interrompt le serveur qui attendait une connexion client.
    Ce n'est pas une "erreur" mais l'effet attendu lorsque vous tapez ^C.
    Si vous voulez que quelqu'un aide, il faudrait être plus précis et fournir un code serveur et client permettant de reproduire ce que vous constatez.
    Bon courage
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tchad

    Informations forums :
    Inscription : Juillet 2013
    Messages : 114
    Points : 47
    Points
    47
    Par défaut
    salut!

    excusez je n'ai pas bien compris. ofet, c'est pas moi qui a tapez le controle C plus tot dès le client tente à se connecter le serveur affiche comme "Erreur".

    En suite j'ai deja posté le code serveur et client juste en dessus.

    cordialement.

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Re.
    Citation Envoyé par koreimy Voir le message
    En suite j'ai deja posté le code serveur et client juste en dessus.
    Certes mais pas les modules importes.
    Donc pour reproduire quelque chose, il faudrait éditer votre code pour y supprimer /import/ et lignes de code correspondantes.
    In fine, si on a la chance de reproduire un truc, pas certain que cela vous aide.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. Echec de connexion à une source de données SQL
    Par Giova02 dans le forum InfoPath
    Réponses: 1
    Dernier message: 15/05/2007, 17h24
  2. Réponses: 2
    Dernier message: 02/12/2006, 09h00
  3. [SQL-Server] Echec de connexion à SQL Server Express
    Par heddicmi dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 22/06/2006, 11h43
  4. Echec de connexion avec la BD
    Par manel007 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 08/02/2005, 12h01
  5. [CR][VB.NET] Echec de connexion
    Par Shuret dans le forum SDK
    Réponses: 5
    Dernier message: 15/09/2004, 10h46

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