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

Entrée/Sortie Java Discussion :

Problème ClientSocket simple


Sujet :

Entrée/Sortie Java

  1. #1
    Membre du Club
    Profil pro
    Lycéen
    Inscrit en
    Mai 2012
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2012
    Messages : 68
    Points : 47
    Points
    47
    Par défaut Problème ClientSocket simple
    Bonjour tous le monde,
    Je tente de faire un petit bot pour mon channel IRC, mais je fais face à un problème, pour le moment j'utilise Hercules pour simuler un serveur, mais je fais face à un problème, je lance mon client dans un thread, et je lis en boucle se que m'envoi mon serveur, le problème c'est que je ne passe qu'une seul fois dans la boucle et uniquement quand je ferme la connexion depuis le 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
    package application;
     
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.PrintWriter;
    import java.net.Socket;
     
    public class Client extends Thread {
    	private Socket socket;
    	private String server;
    	private int port;
    	private String nick;
    	private String channel;
    	private BufferedReader in;
    	private PrintWriter out;
     
    	public Client(String server, String nick, String channel, int port) {
    		// this.server=server;
    		// this.port = port;
    		// this.nick=nick;
    		// this.channel=channel;
    		try {
    			this.socket = new Socket(server, port);
    			this.in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
    			this.out = new PrintWriter(socket.getOutputStream());
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    	}
     
    	@Override
    	public void run() {
    		try {
    			while (true) {
    				String message;
    				while ((message = in.readLine()) != null) {
    					{
    						System.out.println("je passe");
    						out.println(message + " rec");
    						out.flush();
    					}
    				}
    			}
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
    }
    Une idée ? Merci

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Ton code n'envoie jamais rien au serveur, le serveur n'a donc aucune réponse à t'envoyer. Si c'est une connexion client, tu dois commencer par lui envoyer les commande PASS, NICK et USER

  3. #3
    Membre du Club
    Profil pro
    Lycéen
    Inscrit en
    Mai 2012
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2012
    Messages : 68
    Points : 47
    Points
    47
    Par défaut
    Pour le moment je me connecte pas à un serveur IRC hein ... pour le moment j'essais de faire fonctionner un client

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Et il fait quoi concrètement ton serveur?

  5. #5
    Membre du Club
    Profil pro
    Lycéen
    Inscrit en
    Mai 2012
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2012
    Messages : 68
    Points : 47
    Points
    47
    Par défaut
    Il envois se que je veux envoyer, et m'affiche se que le client lui send.

    Mais mon problème c'est qu'le client, il m'affiche qu'une seul fois "je passe" dans la console, et uniquement quand je ferme la connexion depuis mon serveur.

  6. #6
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    ton serveur envoie bien le retour à la ligne?

  7. #7
    Membre du Club
    Profil pro
    Lycéen
    Inscrit en
    Mai 2012
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2012
    Messages : 68
    Points : 47
    Points
    47
    Par défaut
    Oui.

  8. #8
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Pourtant, c'est la seule raison que je voie pour que ton client n'afficher rien. Le BufferedReader attends un retour à la ligne. Tu peux faire une capture du flux réseau avec un outil genre wireshark et la poster?

  9. #9
    Membre du Club
    Profil pro
    Lycéen
    Inscrit en
    Mai 2012
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2012
    Messages : 68
    Points : 47
    Points
    47
    Par défaut
    effectivement, il attendait bien un retour à la ligne, mais maintenant, second pépin, il boucle haha
    Nom : 0F17x9c.png
Affichages : 279
Taille : 48,0 Ko

  10. #10
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 547
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 547
    Points : 21 602
    Points
    21 602
    Par défaut
    Hello,

    je me demande à quoi sert cette case "Server echo" cochée dans Hercules
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Problème tout simple : requête et liste déroulante
    Par Ellix dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 05/07/2007, 14h06
  2. [MySQL] Problème tout simple mais résultat incompréhensible
    Par KaXz dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 25/02/2007, 01h48
  3. Problème XML::Simple & image::Magick
    Par rori dans le forum Modules
    Réponses: 5
    Dernier message: 17/05/2006, 18h02
  4. problème apostrophes simple et double
    Par dor_boucle dans le forum Langage
    Réponses: 9
    Dernier message: 20/02/2006, 14h48
  5. [Débutant] Problème servlet simple
    Par davycrocket dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 30/06/2004, 10h24

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