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 C Discussion :

tcgetattr() m'empêche de me connecter


Sujet :

Réseau C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    ingénieur calcul
    Inscrit en
    Décembre 2007
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur calcul
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 363
    Par défaut tcgetattr() m'empêche de me connecter
    Bonjour,
    je tente depuis pas mal de temps d'écrire un programme client en C sous linux, qui ouvre une session telnet avec un serveur situé là où je bosse.
    Il se trouve que la connexion ne se fait qu'une seule fois après le démarrage de mon PC, ce qui m'oblige à rebooter entre chaque modification que j'apporte au programme pour tenter d'éviter ça parce que ça rend peu utile.
    J'ai donc essayé d'enregistrer les attributs initiaux du terminal avant la connexion, dans une structure termios, par tcgetattr() comme montré dans le man de termios.
    Et ça ne se connexte même plus la première fois.
    Qu'en pensez vous ? Quelqu'a-t'il une idée même apparemment stupide pour me débloquer ?
    J'ai déjà eu des difficultés avant la connexion, qui sont présentes dans la discussion suivante : http://www.developpez.net/forums/d60...ession-telnet/
    David

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 487
    Par défaut
    Je ne suis pas sûr de parvenir à te suivre mais :

    De deux choses l'une : soit tu essaies de réécrire un client Telnet à destination de l'utilisateur final (et je n'en vois pas l'intérêt) soit tu essaies de faire un programme qui communique avec un serveur Telnet (m'étonnerait qu'il soit encore accessible depuis l'extérieur autrement que par VPN) et là, je ne vois pas pourquoi tu as besoin de tcgetattr().

    Si tu te situes dans le premier cas de figure, le fait que tu ne puisses pas rouvrir une seconde connexion IP n'a, à priori, rien à voir avec les réglages du terminal. Cela peut être dû à n'importe quoi, l'état TIME_WAIT par exemple (auquel cas cela traduirait une petite erreur de conception).

    Développe un peu plus.

  3. #3
    Membre éclairé
    Homme Profil pro
    ingénieur calcul
    Inscrit en
    Décembre 2007
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur calcul
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 363
    Par défaut
    Bonjour, je vais essayer de développer mon histoire le plus clairement possible;
    Je veux faire un client telnet qui se logge à mon boulot (machines sous unix, Silicon Graphics et IBM) et pouvoir contrôler l'avancement de jobs que j'ai lancés dans la journée. (je fais du calcul de structures, et même sur des grosses bécanes, ça peut durer des heures)
    Ce qu'il se passe est que mon client ne parvient à se connecter à une des machines de mon boulot qu'un seule fois après le démarrage de mon PC. (donc ça m'oblige à le redémarrer entre chaque fois où je contrôle où en sont mes jobs du boulot; c'est archi-pénible)
    Donc j'ai essayé avec tcgetattr( ) d'enregistrer l'état initial du terminal dans l'espoir de pouvoir le restaurer par tcsetattr( ) après avoir fait mon petit boulot.
    Or, il ne se connecte même plus la première fois après être passé dans le code suivant pourtant simpliste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        //
        // enregistrement dans *pterm_initial de l'état initial du terminal :
        // if((tinit=tcgetattr(1, &pterm_initial)) != 0) {
        //     printf("erreur de tcgetattr\n");
        //     perror("tcgetattr");
        // }
        //
    (j'ai mis des commentaires parce que c'est pas très probant comme comportement...)
    J'espère t'avoir éclairé un peu, et merci de tenter de m'aider.
    David

Discussions similaires

  1. [MFC] ADO connection
    Par philippe V dans le forum MFC
    Réponses: 3
    Dernier message: 10/06/2002, 07h36
  2. couper une connection avec un serveur corba
    Par pons dans le forum CORBA
    Réponses: 3
    Dernier message: 31/05/2002, 10h11
  3. Réponses: 2
    Dernier message: 30/05/2002, 08h54
  4. Réponses: 3
    Dernier message: 22/05/2002, 09h37
  5. [Kylix] Pb connection à Mysql
    Par Anonymous dans le forum EDI
    Réponses: 3
    Dernier message: 25/04/2002, 15h26

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