Application Client/Serveur en Java

Bonjour à tous,
Je construit une petite application "Client/Serveur" en Java avec JBuilder.
Le problème est que lorsque mon premier client à terminer sa session, je n'arrive pas à connecter un nouveau client.
Je précise que mon serveur n'accepte qu'un client à la fois.
Je pense que je ne lance pas mon thread au bon endroit.
Si quelqu'un pourrait m'aider, j'en serais très content et vous remercie déjà d'avance.

Voici le programme en question :
un projet Serveur :

public class Serveur extends Thread{
int Port=678;
ServerSocket Secoute;
Socket client;
public Serveur() {
try{
//Lancement du serveur
Secoute = new ServerSocket(Port);
}
catch(IOException e){
System.out.println("Message d'erreur provenant du serveur : \n" +e.getMessage());
System.exit(1);
}
System.out.println("Le serveur en écoute sur le port : " +Port);
//Lancement du thread
this.start();
}

//Traitement à exécuter dans le thread
public void run(){
try {
while(true){
Socket client=Secoute.accept();
ClientConnecte cc = new ClientConnecte(client);
}
}
catch (IOException e) {
System.out.println("Erreur de connection du client : " +e);
System.exit(1);
}
}

public static void main(String[] args) {
Serveur s = new Serveur();
}
}

public class ClientConnecte {
public ClientConnecte(Socket client) {
try{
//Reçois du client
DataInputStream fluxentree = new DataInputStream client.getInputStream());
//Retourne au client
DataOutputStream fluxsortie = new DataOutputStream(client.getOutputStream());

boolean cont = true;

while(cont)
{
System.out.println("\n\tEn attente de commande...");

String lecteur = fluxentree.readLine();
System.out.println("Commande du client: "+lecteur);

if(lecteur.equals("stop"))
{
fluxsortie.writeBytes("Veuillez patienter vous aller être déconnecter...\n");
cont=false;
}

if(lecteur.equals("Dire message")){
fluxsortie.writeBytes("Félicitation, vous êtes bien connecté au serveur !!!\n");
}
}

client.close();

}
catch(IOException e)
{
System.out.println("Erreur de connection : \n\t" +e.getMessage());
}

}

}

Et un projet Client dans une interface graphique...

10 réponses

  1. j'ai réalisé un client / serveur http acceptant de multiple client. Peut être que mon code source peut t'aider. Tu pourra trouver le programme à cette adresse : http://www.angelfires-fr.com/programmation/index.php?nom=ittpServer
    1. stp un programme java sur client serveur
  2. salut david, je suis aussi debutant en java;
    pour ton programme :

    dans le serveur c'est quoi 'S' juste avant la fin du programme .
    et pour le client : DataInputStream utilisé pourquoi
    1. je pense qu'il faut travailler avec les thread c parceque on peu partager la memoire a l'aide thread et bon courage
  3. Bnjrs,
    alors je pense qu'il faut creer dans la fonction Run() un thread a chaq client connecté

    public void run(){
    try {
    while(true){

    Socket client=Secoute.accept();
    ClientConnecte cc = new ClientConnecte(client);
    // on crée un thead a chaque client connecté
    Thread t = new Thread(cc);
    // on lance le thread
    t.start();
    }
    }
    catch (IOException e) {
    System.out.println("Erreur de connection du client : " +e);
    System.exit(1);
    }
    }
    1. j'ai besoin d'un programme qui fait programmer un serveur qui fait le traitement de texte(calculer le nombre de mot ,de lettre,nombre d'un mot donnee...etc)
      1. rani mtayebkom TP madirahlich wahed tedi 000000000000
    2. amira tu ne serait pas de l'ISG par exemple;
      car j'ai le meme probleme
      1. je veux juste poser une question est ce JBuilder et un bon ide ?
        merci

        ++
        1. aidez moi a programmer un serveur en langage c ou c++ qui fournit:
          *attente des connexions des users
          *maintient de la liste des user connecté
          *reception des demandes de conversation
          *traitement des demandes d'inscrption

          et le client en java fournit:
          * s inscrire au pré du serveur <<chat>>
          *se connecter au serveur
          *afficher liste des clients connecté ( la liste sera actualisé chaque 30 seconde)
          *commencer une conversation avec un client
          NB: aprés l'Etablissement de connexion, les discussions seront gérées directement par les clients sans passer par serveur(peer to peer). toute communication se réaliseront via les sockets.
          1. il faut que le nombre de port >1023
            car de 0 à 1023 port sont reservé
        2. salut;;;g un prblm de connexion de mon serveur avec le port necesaire pour etablir la connexion serveur ;;enfait g un projet de reseau ki necessite un connection client seloké sur la fenetre du dos,,kel numero de port devrais-je choisir pr ke ça marche,,,merciiiiiiiiiiii
          1. ça fait trois ans que tu as posté ce message mais voila jai le meme projet a faire et je sais meme pas dou commencer
            Je voudrais bien savoir si tu as encore une copie de ce projet!
            1. oui t ke maplé