cs_Diablo83
Messages postés2Date d'inscriptionjeudi 21 octobre 2004StatutMembreDernière intervention13 juin 2010
-
13 juin 2010 à 20:36
cs_Diablo83
Messages postés2Date d'inscriptionjeudi 21 octobre 2004StatutMembreDernière intervention13 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 !