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 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159
| /**
* @author @mine
*
* Classe de gestion du client.
*/
package MIAI_Client;
import java.net.*;
import java.io.*;
import java.util.*;
public class Client implements Runnable
{
/**
* Chaine contenant l'adresse du serveur.
*/
private String adresse;
/**
* Entier contenant le port du serveur.
*/
private int port=5000;
/**
* Chaine contenant le pseudo de l'utilisateur.
*/
private String pseudo;
/**
* Socket de connexion.
*/
private Socket sock;
/**
* Flux d'entrée des messages (Buffer).
*/
private BufferedReader in;
/**
* Flux de sortie des messages.
*/
private PrintStream out;
/**
* Vector contenant les messages recus.
*/
public Vector messages = new Vector();
public Vector user = new Vector();
/**
* Constructeur de client.
* @param adresse chaine contenant l'adresse du serveur.
* @param port entier contenant le port du serveur.
* @param pseudo chaine contenant le pseudo de l'utilisateur.
*/
public Client(String adresse, String pseudo)
{
System.out.println(pseudo+" est connecté avec l'adresse :"+adresse+" sur le port:"+port);
this.adresse = adresse;
this.pseudo = pseudo;
ajouterClient();
}
public String getPseudo()
{
return pseudo;
}
/**
* Méthode permettant de se connecter au serveur.
*
*/
public void connexion()
{
try
{
sock = new Socket(adresse, port);
in = new BufferedReader(new InputStreamReader(sock.getInputStream()));
out = new PrintStream(sock.getOutputStream());
out.println(pseudo + " est connecté ");
out.flush();
new Thread(this).start();
}
catch (IOException ioe)
{
System.out.println("Client fermé");
System.exit(1);
}
}
public void ajouterClient(){user.addElement(pseudo);}
/**
* Thread gérant la reception des messages.
*/
public void run()
{
try
{
while (true)
{
String recu = in.readLine();
messages.addElement(recu);
}
}
catch (IOException ioe)
{
System.out.println("Probleme de reception client");
}
}
/**
* Méthode permettant l'envoi d'un message.
* @param message chaine contenant le message à envoyer.
*/
public void envoyer(String message)
{
out.println(pseudo+" dit : "+message);
out.flush();
}
/**
* Méthode permettant la fermeture du client.
*
*/
public void quitter()
{
try
{
if (sock != null)
{
out.println(pseudo + " a quitté !");
out.flush();
out.println("[quit]");
out.flush();
sock.close();
}
}
catch (IOException ioe)
{
System.out.println("Probleme de fermeture client");
System.exit(2);
}
}
} |
Partager