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

Java Discussion :

Mini serveur Telnet


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 126
    Par défaut Mini serveur Telnet
    Bonjour, je suis en train de réaliser un programme réseau en Java qui fait des sondages (il prend une question en argument).

    Quand un client se connecte, le serveur envoi la question, le client répond par oui ou par non et le serveur comptabilise son vote.

    Quand on tape quit dans l'invite de commande du serveur, le serveur affiche le résultat du sondage et s'arrête.

    Voici mon code : Télécharger la source.

    Donc pour résumer, lorsque mon serveur tourne, il y a 2 threads qui s'exécutent :
    • main (methode go) : écoute le port 7777 et créé une connexion quand un client se connecte
    • Saisie : il surveille ce qu'on écris dans l'invite de commande serveur, et quand on écrit quit ça arrête tout


    Mon problème, c'est que quit ne fonctionne pas bien. Quand le thread Saisie reçoit quit, il change la valeur de continue_flag de true à false.

    Ça a pour effet d'arrêter la boucle while( continue_flag ) de la méthode go(). Seulement ça ne l'arrête pas sur le champ, mais dés la prochaine connexion (puisque go attend en permanence sur la ligne :
    Socket sockClient = serveurSock.accept();.

    Donc comment je peux faire pour que ça le stop dans la seconde sans attendre le prochain client ?

    Merci

  2. #2
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    Ce code arrêtera immédiatement ton programme.
    Attention à bien vérifier que toutes tes ressources sont proprement fermées avant d'exécuter ce code.
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 126
    Par défaut
    Tout simplement... merci beaucoup.

    J'aimerais y apporter une dernière amélioration : quand un client se connecte et qu'il ferme sa fenêtre (invite de commande), ça provoque une erreur dans le serveur (j'appelle ça des déconnexions sauvages) :

    Exception in thread "Thread-1" java.lang.NullPointerException
    at ServeurTelnet$Connection.run(ServeurTelnet.java:101)
    Comment je peux faire pour empêcher ça (sachant que j'ai déjà mis un try catch finally dans mon thread connection) ?

Discussions similaires

  1. Défi N°3 : Réalisation d'un mini-serveur
    Par millie dans le forum Défis langages fonctionnels
    Réponses: 16
    Dernier message: 10/04/2008, 10h51
  2. Serveur telnet et adresse ip
    Par pieroznight dans le forum Web & réseau
    Réponses: 10
    Dernier message: 02/07/2007, 16h27
  3. Recv() Serveur telnet
    Par kiki67100 dans le forum C++
    Réponses: 5
    Dernier message: 29/06/2007, 17h07
  4. Problème client-serveur TELNET.
    Par 0v3rb1t dans le forum Réseau
    Réponses: 5
    Dernier message: 20/05/2007, 16h59
  5. Créer un serveur telnet ssh ?
    Par AsmCode dans le forum C++
    Réponses: 5
    Dernier message: 08/02/2007, 23h12

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