Envoi de message sur irc

cs_Diablo83 Messages postés 2 Date d'inscription jeudi 21 octobre 2004 Statut Membre Dernière intervention 13 juin 2010 - 13 juin 2010 à 20:36
cs_Diablo83 Messages postés 2 Date d'inscription jeudi 21 octobre 2004 Statut Membre Dernière intervention 13 juin 2010 - 13 juin 2010 à 23:36
Bonjour,

J'essaie de faire un espèce de client irc qui me permet de me connecter à un serveur. J'arrive très bien à me connecter au serveur voulu grâce aux sockets, mais ensuite dès que je veux envoyer un message sur un channel specifique (celui où je me suis connecté), il y a un problème lors de l'envoie. En effet, si la chaine envoyé au serveur contient un espace, alors ce qui sera envoyé au serveur sera tout ce qu'il y a avant l'espace. Petit exemple (avec la fonction send qui permet d'envoyer les messages) :
send("bonjour"); ==> reçu : "bonjour"
send("Bonjour je suis moi"); ==> reçu "bonjour"

Voici mon code (que j'ai repris sur javafr) :

package classes;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.Socket;
import java.util.logging.Level;
import java.util.logging.Logger;

public class Canal {
    private int port;
    private String server,name, botUser, botRealName, botHost, botNick,line;
    private BufferedReader input;
    private PrintStream output;

    public Canal(String server,String name, int port, String botUser, String botRealName, String botHost, String botNick) {
        this.server = server.trim();
        this.name = name.trim();
        this.port = port;
        this.botUser = botUser.trim();
        this.botRealName = botRealName.trim();
        this.botHost = botHost.trim();
        this.botNick = botNick.trim();
        connect();
        try {
            send("join #test33"); //Jusque là tout va bien
            send("PRIVMSG #test33 Je suis connecté "); //le message reçu sur le channel "#test33" est juste "Je"
            while(isConnected()) {
                line = input.readLine();
                System.out.println(line);
            }
        } catch(IOException e) {
            System.out.println(e);
        }
    }

    public void connect() {
        try {
            Socket ircSock = new Socket(server,port);
            output = new PrintStream(ircSock.getOutputStream());
            input = new BufferedReader(new InputStreamReader(ircSock.getInputStream()));
            send("NICK "+botNick);
            send("USER "+botUser+" "+botRealName+" "+botHost+" :"+botUser);            
        } catch(IOException e) {
            System.out.println("Exception : ");
            e.printStackTrace();
        }
    }

    public void disconnect() {}

    public void send(String msg) {
        output.println(msg);
        output.flush();
    }

    public boolean isConnected() { return true; }
    
    public static void main(String[] args) {
        new Canal("irc.worldnet.net","test12345",6667,"hadibou","hadibou","hoho.com","habidou");
    }
}


Si quelqu'un à une solution ça m'aiderai bien car la je bloque !

Merci d'avance pour votre aide.

Diablo83

1 réponse

cs_Diablo83 Messages postés 2 Date d'inscription jeudi 21 octobre 2004 Statut Membre Dernière intervention 13 juin 2010
13 juin 2010 à 23:36
solution trouvée : il faut mettre ":" devant la chaine que l'on veut envoyer.

Diablo83
0
Rejoignez-nous