DissertationsEnLigne.com - Dissertations gratuites, mémoires, discours et notes de recherche
Recherche

Socket Et Java

Recherche de Documents : Socket Et Java. Rechercher de 53 000+ Dissertation Gratuites et Mémoires
Page 1 sur 9

"pro"))

//conseil professionnel

conseil=ConseilMultiServeur.getConseilPro();

else if (demande.trim().equalsIgnoreCase("per"))

//conseil personnnel

conseil=ConseilMultiServeur.getConseilPer();

else conseil="aucun conseil disponible!!";

System.out.println("Conseil renvoyee à " + nom+ " : "

+conseil);

//Envoyer le conseil

ecriture.println(conseil);

//envoyer un saut de ligne

ecriture.println();

ecriture.println("Un autre Conseil? (taper pro, per ou quit

pour arreter)");

}

// Fermer les flots

ecriture.close();lecture.close();

// Fermer la socket

cSock.close();

System.out.println("client "+ nom + " déconnecté!");

} catch (IOException e) {

e.printStackTrace();

}

}

}

public class ConseilMultiServeur {

private static final String[]listeConseilsPro= {"Vous avez besoin de vacances!", "Mettez vous vraiment au travail", "Vous devriez mieux traiter vos collaborateurs", "Arretez de faire croire aux autres que vous travaillez!!"};

private static final String[]listeConseilsPer= {"Mangez moins de pizzas", "Reposez vous davantage", "Allez chez le coiffeur", "Mangez plus de fruits"};

public static String getConseilPro(){

int numAleatoire=(int)

(Math.random()*listeConseilsPro.length);

return listeConseilsPro[numAleatoire];

}

public static String getConseilPer(){

int numAleatoire=(int)

(Math.random()*listeConseilsPer.length);

return listeConseilsPer[numAleatoire];

}

private void lancer(){

ServerSocket servSock=null;

try {

servSock=new ServerSocket(4545);

System.out.println("Serveur ConseilMulti démaré sur :

"+servSock);

while(true){

Socket cSock = servSock.accept();

//Blocage jusqu'à tentative de connexion d'un client

try{

//Création d'un thread de traitement du client

new ControlClient(cSock);

}catch(IOException e){

//si exception on ferme la socket

// sinon c'est le thread qui le fait

cSock.close();

} }

}

catch (IOException e) {

e.printStackTrace();

}

finally{

try {

servSock.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

public static void main(String[] args) {

ConseilMultiServeur serveur=new ConseilMultiServeur();

serveur.lancer();

}

}

Normalement, la classe Client n’étaient pas à refaire, vous pouviez utiliser la classe réalisée lors du TP1. Je place la classe ConseilMultiClient simplement pour information afin de vous donner la classe que j’ai utilisée pour tester mon serveur.

public class ConseilMultiClient {

public static final String HOST="127.0.0.1";

public static final int PORT=4545;

public void lancer() {

try{

Socket maSocket = new Socket("127.0.0.1",PORT);

//Créer les flots

//Flot d'écriture :un PrintWriter chainé au flot d'entrée de la socket

PrintWriter ecriture=new PrintWriter(maSocket.getOutputStream(),true);

//true assure le vidage automatique du buffer

//Flot de lecture :un InputStreamReader chainé au flot de sortie de la socket

InputStreamReader isr=new InputStreamReader(maSocket.getInputStream());

//un BufferedReader

BufferedReader lecture=new BufferedReader(isr);

//Console locale

BufferedReader console = new BufferedReader(new InputStreamReader(System.in));

//Lire une ligne

System.out.println(lecture.readLine());

System.out.println(lecture.readLine());

ecriture.println(console.readLine());//saisie du nom sur la console et envoi sur la socket

System.out.println(lecture.readLine());

System.out.println(lecture.readLine());

while (true){

System.out.print("Saisissez votre choix :");

String choix=console.readLine();

//ecrire un requête

ecriture.println(choix);

//arrêt si quit

if (choix.trim().equalsIgnoreCase("quit")) break;

//Lire une ligne

String conseil=lecture.readLine();

//affichage en local sur la console

System.out.println("Le conseil du jour : " + conseil);

System.out.println(lecture.readLine());

System.out.println(lecture.readLine());

}

//fermeture du flot de lecture

lecture.close();

// Fermeture du flot d'ecriture

ecriture.close();

//Fermer la socket

maSocket.close();

}

catch(IOException ioe){

System.err.println("Erreur d’échange de donnees");

ioe.printStackTrace();

}

finally{

//Libérer les ressources

System.out.println("Arret connexion");

//Fermer les flots

//bf.close();

//Fermer la socket

//maSocket.close();

}

}

public static void main(String[] args) {

ConseilMultiClient client=new ConseilMultiClient();

client.lancer();

}

}

Partie 2 - Application

...

Télécharger au format  txt (12.3 Kb)   pdf (105.6 Kb)   docx (11.3 Kb)  
Voir 8 pages de plus »
Uniquement disponible sur DissertationsEnLigne.com