[ALG] PPC

Voir le sujet précédent Voir le sujet suivant Aller en bas

[ALG] PPC

Message  Dark le Dim 13 Juil 2008, 21:52

Bonjour ,

J'essaie de refaire le deuxième énoncé de pierre-papier-ciseaux . J'ai écris la partie serveur . Ensuite , je lance le serveur puis le Client1.jar en mettant pma , pma et localhost mais j'ai un connectException alors que j'ai bien mis Protocole.PORT comme port d'écoute du serveur .

Avez-vous une solution ?

Dark

Nombre de messages : 131
Age : 30
Prénom : Laurent
Statut : Etudiant
Date d'inscription : 15/05/2006

http://membres.multimania.fr/dark0502/

Revenir en haut Aller en bas

Re: [ALG] PPC

Message  pbt le Lun 14 Juil 2008, 22:45

Il faut croire que le serveur n'est pas vraiment à l'écoute lorsque le client se connecte ... vérifie ça d'abord.

_________________
smartq.namok.be · faq ·  · IRC / irc.freenode.net #esi · blog.namok.be
style #pbt {heigth:189cm; weight:79kg; eye-color:#524000; hair:very short; dead pixels: some; }

pbt
Admin

Nombre de messages : 4862
Age : 45
Prénom : Pierre
Statut : prof
Localisation : La cité des géants
Date d'inscription : 24/11/2005

http://esi.namok.be

Revenir en haut Aller en bas

Re: [ALG] PPC

Message  Dark le Mar 15 Juil 2008, 00:05

package g28371.alg.examen.juin2007.ppc;
import java.net.*;
import java.util.*;
import java.io.*;

public class Server{

private ServerSocket ss ;
private static ArrayList<String> utilisateurs ;
private static ArrayList<String> passwords ;


public Server()throws IOException{
BufferedReader br = new BufferedReader(new FileReader("passwords.dat"));
String uneLigne ;
ss = new ServerSocket(Protocole.PORT);
utilisateurs = new ArrayList<String>();
passwords = new ArrayList<String>() ;

while((uneLigne = br.readLine())!=null) passwords.add(uneLigne) ;

}

public static ArrayList<String> getUtilisateurs(){
return utilisateurs ;
}

public static ArrayList<String> getPassword(){
return passwords ;
}

public static void addUser(String user){
utilisateurs.add(user);
}

public static void removeUser(String user){
utilisateurs.remove(user);
}

public void tourne(){
Socket s = null ;

try{
while(true){
s = ss.accept() ;

try{
new ThreadClient(s).start();
}
catch(Exception e ){

}
}
}
catch(IOException ioe){
}
finally{
}
}

public static void main(String[]args){

Server server = null ;

try{
server = new Server() ;
}
catch(Exception e){
}

server.tourne() ;
}
}

Dark

Nombre de messages : 131
Age : 30
Prénom : Laurent
Statut : Etudiant
Date d'inscription : 15/05/2006

http://membres.multimania.fr/dark0502/

Revenir en haut Aller en bas

Re: [ALG] PPC

Message  erka le Mar 15 Juil 2008, 18:09

Dark a écrit:
Ma class serveur (bien que ciblé la partie réelement importante est encore mieux)
Code:
package g28371.alg.examen.juin2007.ppc;
import java.net.*;
import java.util.*;
import java.io.*;

public class Server{
   
   private ServerSocket ss ;
   private static ArrayList<String> utilisateurs ;
   private static ArrayList<String> passwords ;
   
   
   public Server()throws IOException{
      BufferedReader br = new BufferedReader(new FileReader("passwords.dat"));
      String uneLigne ;
      ss = new ServerSocket(Protocole.PORT);
      utilisateurs = new ArrayList<String>();
      passwords = new ArrayList<String>() ;
      
      while((uneLigne = br.readLine())!=null) passwords.add(uneLigne) ;
      
   }
   
   public static ArrayList<String> getUtilisateurs(){
      return utilisateurs ;
   }
   
   public static ArrayList<String> getPassword(){
      return passwords ;
   }
   
   public static void addUser(String user){
      utilisateurs.add(user);
   }
   
   public static void removeUser(String user){
      utilisateurs.remove(user);
   }
   
   public void tourne(){
      Socket s = null ;
      
      try{
         while(true){
            s = ss.accept() ;
         
            try{
               new ThreadClient(s).start();   
            }
            catch(Exception e ){
               
            }
         }
      }
      catch(IOException ioe){
      }
      finally{
      }
   }

Mon main
Code:

   
   public static void main(String[]args){
      
      Server server = null ;
      
      try{
         server = new Server() ;
      }
      catch(Exception e){
      }
      
      server.tourne() ;    
   }
}
ton code a l'air bon mais ne permet pas de répondre à ta question

erka

Nombre de messages : 495
Age : 29
Prénom : Julian
Statut : ancien reseaux
Localisation : Charleroi
Date d'inscription : 23/10/2006

http://www.vanden.be

Revenir en haut Aller en bas

Re: [ALG] PPC

Message  Dark le Mer 16 Juil 2008, 00:14

package g28371.alg.examen.juin2007.ppc;
import java.net.*;
import java.io.*;
import java.util.*;

public class ThreadClient extends Thread{
private Socket s ;
private BufferedReader br ;
private PrintWriter pw ;
private int scoreClient = 0, scoreServeur = 0;
private String nom ;

public ThreadClient(Socket s)throws IOException,IllegalArgumentException{

this.s = s ;
br = new BufferedReader(new InputStreamReader(s.getInputStream()));
pw = new PrintWriter(new OutputStreamWriter(s.getOutputStream()));
http://this.nom = nom ;
TraiterLogin();
}

public void run(){
try{
while(true){
String commande = br.readLine();

if(commande.charAt(0)==Protocole.CMD_MISE){
TraiterMise(commande);
}
else{
TraiterLogout();
break ;
}
}
}
catch(IOException ioe){
}
}

public void TraiterLogin()throws IOException,IllegalArgumentException{
String ligne = br.readLine() ;
int indiceCaractereFinChamp = ligne.indexOf("$") ;
String nom = ligne.substring(ligne.charAt(1),indiceCaractereFinChamp );
String password = ligne.substring(++indiceCaractereFinChamp,ligne.lastIndexOf("$"));
ArrayList<String> utilisateurs = Server.getUtilisateurs();
ArrayList<String> passwords = Server.getPassword();

if(nom==null || nom.equals("") ){
pw.print(""+Protocole.CMD_LOGIN+Protocole.LOGIN_RCODE_REJECTED+Protocole.LOGIN_BAD_NAME+Protocole.FIN_LIGNE);
close() ;
throw new IllegalArgumentException();
}

if(utilisateurs.contains(nom)){
pw.print(""+Protocole.CMD_LOGIN+Protocole.LOGIN_RCODE_REJECTED+Protocole.LOGIN_ALREADY_CONNECTED+Protocole.FIN_LIGNE);
close();
throw new IllegalArgumentException();
}

if(password==null || password.equals("") || !passwords.contains(password)){
pw.print(""+Protocole.CMD_LOGIN+Protocole.LOGIN_RCODE_REJECTED+Protocole.LOGIN_BAD_PASSWORD+Protocole.FIN_LIGNE);
close();
throw new IllegalArgumentException();
}

Server.addUser(nom);
this.nom = nom ;
pw.print(""+Protocole.CMD_LOGIN+Protocole.LOGIN_RCODE_ACCEPTED+Protocole.FIN_LIGNE);

}

public void TraiterMise(String commande){
char miseClient = commande.charAt(1);
char miseServeur =' ';
char gagnant =' ';

int rand = (int)(Math.random()*3) ;

switch(rand){
case 0 : miseServeur = Protocole.PIERRE ; break ;
case 1 : miseServeur = Protocole.PAPIER ;break ;
case 2 : miseServeur = Protocole.CISEAUX ;break ;
default :break;
}

switch(comparerMises(miseClient,miseServeur)){

case -1 : gagnant = Protocole.GAGNANT_SERVEUR ; scoreServeur++ ; break;
case 0 : gagnant = Protocole.GAGNANT_AUCUN ; break ;
case 1 : gagnant = Protocole.GAGNANT_CLIENT ; scoreClient++ ; break;
}

pw.print(""+Protocole.CMD_MISE+miseServeur+miseClient+gagnant+scoreServeur+Protocole.FIN_CHAMP+
scoreClient+Protocole.FIN_CHAMP+Protocole.FIN_LIGNE);
}

public void TraiterLogout()throws IOException{
close();
Server.removeUser(nom);
}

public int comparerMises(char miseClient , char miseServeur){
//int nb = 0 ;

switch(miseClient){
case Protocole.PIERRE :

switch(miseServeur){
case Protocole.PAPIER : return -1 ;
case Protocole.CISEAUX : return 1 ;
}

case Protocole.PAPIER :

switch(miseServeur){
case Protocole.PIERRE : return 1 ;
case Protocole.CISEAUX : return -1 ;
}

case Protocole.CISEAUX :

switch(miseServeur){
case Protocole.PIERRE : return -1 ;
case Protocole.PAPIER : return 1 ;
}
}
return 0 ;
}
public void close()throws IOException{
s.close();
br.close();
pw.flush();
pw.close();
}
}

Dark

Nombre de messages : 131
Age : 30
Prénom : Laurent
Statut : Etudiant
Date d'inscription : 15/05/2006

http://membres.multimania.fr/dark0502/

Revenir en haut Aller en bas

Re: [ALG] PPC

Message  erka le Mer 16 Juil 2008, 22:54

haaa horreur ....

erka

Nombre de messages : 495
Age : 29
Prénom : Julian
Statut : ancien reseaux
Localisation : Charleroi
Date d'inscription : 23/10/2006

http://www.vanden.be

Revenir en haut Aller en bas

Re: [ALG] PPC

Message  AsPrO le Jeu 17 Juil 2008, 16:18

Et si tu lances le serveur et le client à partir de netbeans pour voir l'instruction ou ça coince ?

AsPrO

Nombre de messages : 392
Age : 30
Prénom : Anthony
Statut : 1er Réseau
Date d'inscription : 01/03/2006

Revenir en haut Aller en bas

Re: [ALG] PPC

Message  Dark le Dim 20 Juil 2008, 17:11

Je lance le serveur qui se trouve dans un autre dossier que le client . Le client est fourni sous la forme d'un .jar contenant les bytecodes ( .class ) . Quand je lance le serveur pas de problème mais après , quand je lance le client , voici le message d'erreur que j'ai :

Problème d'I/O
java.net.ConnectException:Connection refused:connect
Host-Portlocalhost 16165

Dark

Nombre de messages : 131
Age : 30
Prénom : Laurent
Statut : Etudiant
Date d'inscription : 15/05/2006

http://membres.multimania.fr/dark0502/

Revenir en haut Aller en bas

Re: [ALG] PPC

Message  Contenu sponsorisé Aujourd'hui à 08:44


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum