Application Client/Serveur en Java
Ledébutantdavid
Messages postés
2
Statut
Membre
-
meriem -
meriem -
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...
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...
A voir également:
- Application client/serveur java example
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Application java - Télécharger - Langages
- Desinstaller application windows - Guide
- Nommez une application d'appel vidéo ou de visioconférence - Guide
10 réponses
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
samiha
merci :)
meriem
stp un programme java sur client serveur
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
pour ton programme :
dans le serveur c'est quoi 'S' juste avant la fin du programme .
et pour le client : DataInputStream utilisé pourquoi
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);
}
}
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);
}
}
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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)
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.
*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.