Recuperation du topic et du nombre d'user d'un chan irc

Soyez le premier à donner votre avis sur cette source.

Snippet vu 5 626 fois - Téléchargée 28 fois

Contenu du snippet

Cette classe ce connecte à un serveur irc donné par un port donné et récupère le topic et le nombre de connecté à un salon donné
ca fait 2 semaines que je fais du java, soyez indulgents :)

Source / Exemple :


import java.io.*;
import java.net.*;
import java.util.*;
/**

  • <p>Titre : Irc sniffer</p>
  • <p>Description : Va chercher le nombre d'users connecté à un chan sur irc</p>
  • <p>Copyright : Copyright (c) 2003</p>
  • <p>Société : </p>
  • @author PaToJeuR - patojeur@phpdesign.org
  • @version 1.0
  • /
public class recup_info_irc { String host; int port; String chan; String topic; String nbusers; public recup_info_irc(String host,int port,String chan) { this.host=host; this.port=port; this.chan=chan; } public void GetConfig(){ System.out.println("Host: "+this.host+" Port: "+this.port+ " Chan: "+this.chan); } public void Connect(){ System.out.println("Tentative de connection à "+this.host+":"+this.port+" pour récuperer les infos de "+this.chan); try { Socket digit = new Socket(this.host, this.port); digit.setSoTimeout(200000); PrintStream out=new PrintStream(digit.getOutputStream()); out.print("USER javaBot UNIX patojeur@phpdesign.org JavaBot\015"); out.print("NICK JavaBot\015"); out.print("LIST "+this.chan+"\015"); BufferedReader in = new BufferedReader(new InputStreamReader(digit.getInputStream())); boolean eof = false; while(!eof){ String line=in.readLine(); StringTokenizer detail=new StringTokenizer(line); String un=detail.nextToken(); String deux=detail.nextToken(); if(deux.equals("322")){ detail.nextToken(); detail.nextToken(); this.nbusers=detail.nextToken(); this.topic=""; while (detail.hasMoreTokens()) { this.topic=this.topic+" "+detail.nextToken(); } eof=true; } if(line!=null){ } else{ eof=true; } } digit.close(); System.out.println("Connection terminée"); } catch (IOException ex) { System.out.println("Erreur ES:"+ ex.getMessage()); this.nbusers="erreur"; this.topic="erreur"; } } }

A voir également

Ajouter un commentaire

Commentaires

Messages postés
88
Date d'inscription
jeudi 26 décembre 2002
Statut
Membre
Dernière intervention
2 janvier 2007

Salut,

si tu as le JRE 1.5 tu peux aussi utiliser la classe Scanner.
Ainsi cette ligne :
BufferedReader in = new BufferedReader(new InputStreamReader(digit.getInputStream())); 


devient :
Scanner in = new Scanner(digit.getInputStream()); 


En plus tu as pleins d'avantges avec Scanner si tu utilises bien sa méthode hasNext(String pattern).

En tous cas, merci, ton code est utile :-)
Messages postés
7
Date d'inscription
samedi 18 janvier 2003
Statut
Membre
Dernière intervention
16 janvier 2005

L'excitation d'un instant... Je ne savais pas quoi marquer :P mais sa me faisais plaisirs de retrouver quelqu'un que je connais sur le Net :)

++
Messages postés
11
Date d'inscription
dimanche 15 décembre 2002
Statut
Membre
Dernière intervention
4 mai 2004

Merci GeoZzZ :)
mais pourquoi la postérité ???
Messages postés
7
Date d'inscription
samedi 18 janvier 2003
Statut
Membre
Dernière intervention
16 janvier 2005

Alors PaToJeur , On passe a la Postérité :p

++

Très bien ton script , Bravo ... Rdv sur #php ;)

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Du même auteur (PaToJeuR)