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 :

Client TCP/IP comment gérer une reconnexion automatique ?


Sujet :

Réseau/Web Python

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2010
    Messages : 66
    Par défaut Client TCP/IP comment gérer une reconnexion automatique ?
    Bonjour à tous,

    Je réalise actuellement un code en python pour établir une connexion avec un serveur via un lien TCP/IP.

    Après plusieurs essais, j'ai finalement réussi à établir une connexion avec un serveur (application c#). je peux donc envoyer et recevoir des messages.

    Malheureusement, lorsque je perds la connexion avec le serveur, mon code en python s'arrête parce que je lance une exception.

    Je ne vois pas comment coder une reconnexion automatique en python vers mon serveur. Par exemple avec plusieurs tentatives toutes les 10 secondes par exemple.

    Voici le bout de code que j'ai écris:

    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
     
    import sys, os 
    #from socket import *
    #from select import *
    import socket
    import select
     
    HOST = '192.168.1.4'
    PORT = 8000               # The port as used by the server
     
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.connect((HOST, PORT))
     
    read_list = [ s]
    write_list = [ s]
     
    try:
     
     
        while 1:
            rl, wl, el = select.select(read_list, write_list, [])       
     
     
            if s  in rl:
                print "DATA FROM SERVER " + HOST
                data = s.recv(1024)
                print 'Received', repr(data)
                MSG_SERVER = True
     
            if s  in wl and MSG_SERVER:
                print "DATA TO SERVER " + HOST
                s.send('Hello, world')
                MSG_SERVER = False
     
     
    except Exception, e:
        raise Exception, e
        # upon an exception, close the socket:
        s.close()
    J'essai juste d'avoir un code fiable pour être sûr que mon code tente toujours de faire le lien avec mon serveur.

    Merci

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Tout d'abord, Python, c'est pas mon truc mais il me semble que tu as fait tout le boulot ou pas loin.

    Tu le dis toi-même, lorsque tu pers la connexion, tu recois une exception que tu traites.

    Dans ce traitement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    s.close()
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.connect((HOST, PORT))
    puis il faut repartir dans ta boucle principale dans le try: (ca je sais pas faire)
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2010
    Messages : 66
    Par défaut
    Citation Envoyé par ram-0000 Voir le message
    Tout d'abord, Python, c'est pas mon truc mais il me semble que tu as fait tout le boulot ou pas loin.

    Tu le dis toi-même, lorsque tu pers la connexion, tu recois une exception que tu traites.

    Dans ce traitement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    s.close()
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.connect((HOST, PORT))
    puis il faut repartir dans ta boucle principale dans le try: (ca je sais pas faire)
    Merci pour ta réponse.

    Je débute dans la programmation en python. J'y travaille que depuis 3 jours maintenant.
    Effectivement, il faut reboucler au début du code. Une simple boucle while fait l'affaire finalement.
    Il va tenter de refaire la connexion lui même.

    Je pense qu'on peut signaler en résolu ce topic même si il n'a pas 24h

    Merci !

  4. #4
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Le bouton c'est juste en dessous et c'est à toi de le faire
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

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

Discussions similaires

  1. [CF][PPC/VB.NET/Datagrid] Comment gérer une colonne CheckBox ?
    Par joefou dans le forum Windows Mobile
    Réponses: 5
    Dernier message: 28/08/2006, 17h08
  2. Réponses: 6
    Dernier message: 21/05/2006, 19h38
  3. [VB.NET] Comment gérer une DLL Delphi ?
    Par slimjoe dans le forum VB.NET
    Réponses: 2
    Dernier message: 09/01/2006, 00h10
  4. Site web : Comment gérer une version Officiel et Officieuse
    Par AlphaYoDa dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 05/12/2005, 08h48
  5. Comment gérer une Progressbar pendant un CopyFrom ?
    Par greg778 dans le forum Composants VCL
    Réponses: 7
    Dernier message: 25/07/2005, 15h34

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