begin process at 2012 02 15 12:56:37
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

RMI

 > CAFE MONNAIE SUR SERVEUR EN RMI

CAFE MONNAIE SUR SERVEUR EN RMI


 Information sur la source

Note :
Aucune note
Catégorie :RMI Classé sous :rmi cafemonnaie, serveur cafe, remote method-invocation, RMI Niveau :Débutant Date de création :09/05/2008 Date de mise à jour :09/05/2008 13:08:29 Vu / téléchargé :5 439 / 693

Auteur : sergetoure

Ecrire un message privé
Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Cafe monnaie est un distributeur automatique de cafe, distributeur que je modelise par un serveur distant(au fait que j'ai testé sur ma machine locale)permet de servir du cafe au client en fonction des pieces qu'il entre.Les pièces acceptées sont de 1F,2F et 5F.Il vous rend ensuite la monnaie si monnaie il y a!!!
C'est une application RMI très simple pour comprendre l'invocation des méthodes à distance.
Vous trouverez dans le zip tous les fichiers compilés.Définir le classpath et lancez rmiregistry dans le shell DOS puis le serveur ServImpl.java et enfin lancez le clien Monclient.java
Enjoy!!!

Source

  • Interface
  • /**
  • * @(#)MyInterface.java
  • *
  • *
  • * @author serge toure
  • * @version 1.00 2008/5/6
  • */
  • import java.rmi.*;
  • public interface MyInt extends Remote {
  • public int checkpiece(int piece) throws RemoteException;
  • public String bilan()throws RemoteException;
  • public String checkforchange() throws RemoteException;
  • public void init()throws RemoteException;
  • public int totalDebit(int cb,int chq,int virmt) throws RemoteException;
  • public float percent(int val, int total) throws RemoteException;
  • }
  • Le serveur
  • /**
  • * @(#)MyserverImpl.java
  • *
  • *
  • * @author serge toure
  • * @version 1.00 2008/5/6
  • */
  • import java.rmi.server.*;
  • import java.rmi.*;
  • import java.net.*;
  • public class servImpl extends UnicastRemoteObject implements MyInt {
  • /**
  • *
  • */
  • private static final long serialVersionUID = 1L;
  • int nbPiece1F=0;int nbPiece2F=0;int nbPiece5F=0;
  • int totalRecu=0;
  • public servImpl() throws RemoteException {
  • super();
  • }
  • public int checkpiece(int piece) throws RemoteException{
  • switch(piece){
  • case 1:
  • nbPiece1F=nbPiece1F+1;
  • break;
  • case 2:
  • nbPiece2F=nbPiece2F+1;
  • break;
  • case 5:
  • nbPiece5F=nbPiece5F+1;
  • break;
  • default:
  • piece=0;
  • }
  • totalRecu=totalRecu+piece;
  • return totalRecu;
  • }
  • public String bilan() throws RemoteException{
  • return ("Vous avez entrés:\n"+
  • +nbPiece1F+" piece(s) de 1F \n"
  • +nbPiece2F+" piece(s) de 2F \n"
  • +nbPiece5F+" piece(s) de 5F \n"
  • +"Soit un total de :"+totalRecu+ "F\n"
  • +"Je vous serre un cafe");
  • }
  • public String checkforchange() throws RemoteException{
  • int change=0;
  • if(totalRecu>3)
  • change=totalRecu-3;
  • return "Et je vous rends la monnaie de valeur:"+change+"F";
  • }
  • public void init()throws RemoteException{
  • nbPiece1F=0;
  • nbPiece2F=0;
  • nbPiece5F=0;
  • totalRecu=0;
  • }
  • public int totalDebit(int cb,int chq,int virmt) throws RemoteException{
  • int nbDebit=0;
  • nbDebit=cb+chq+virmt;
  • return nbDebit;
  • }
  • public float percent(int val, int total) throws RemoteException{
  • float prct=0;
  • prct=(float)(val *100/total);
  • return prct;
  • }
  • public static void main (String[]args){
  • try{
  • servImpl s=new servImpl();
  • Naming.rebind("myserver",s);
  • System.out.println("Server ready to work now!");
  • }
  • catch(RemoteException e){
  • System.out.println("RemoteException "+ e);
  • }
  • catch(MalformedURLException e){
  • System.out.println("Malformed "+e);
  • }
  • }
  • }
  • Le client
  • /**
  • * @(#)Myclient.java
  • *
  • *
  • * @author serge toure
  • * @version 1.00 2008/5/6
  • */
  • import java.rmi.*;
  • public class Monclient {
  • public static void main(String[]args) {
  • int piece,total;
  • char rep='o';
  • String mess1,mess2;
  • int nbCb=0,nbChq=0,nbVirmt=0,nbDebit=0;
  • float prctCb=0,prctChq=0,prctVirmt=0;
  • try{
  • MyInt n=(MyInt)Naming.lookup("rmi://sergetoure:1099/myserver");
  • System.out.println("");
  • System.out.println("");
  • System.out.println("");
  • System.out.println("************************Bienvenue au cafe monnaie!******************************");
  • do{
  • System.out.println("Entrer au moins 3F pour obtenir un cafe");
  • System.out.println("Les pieces acceptées sont:1F,2F et 5F");
  • do{
  • piece=Lire.i();
  • if((piece!=1)&& (piece!=2 )&&( piece!=5)){
  • System.out.println("Veuillez entrer une piece de 1F,2F ou de 5F SVP!");}
  • total=n.checkpiece(piece);
  • }while(total<3);
  • mess1=n.bilan();
  • System.out.println(mess1);
  • mess2=n.checkforchange();
  • System.out.println(mess2);
  • n.init();
  • System.out.println("Voulez vous en un autre? o/n");
  • do{
  • System.out.println("Entrer 'o' pour continuer et 'n' pour quitter!");
  • rep=Lire.c();
  • }while ((rep!='o')&&(rep!='n'));
  • }while(rep=='o');
  • System.out.println("Merci d'avoir utilise cafe monnaie *BONNE JOURNEE A VOUS*");
  • System.out.println("");
  • System.out.println("");
  • System.out.println("");
  • System.out.println("*********************STATISTIQUE*****************************");
  • System.out.println("Nombre de paiements par carte bleue: ");
  • nbCb=Lire.i();
  • System.out.println("Nombre de paiements par chèque: ");
  • nbChq=Lire.i();
  • System.out.println("Nombre de paiements par virements: ");
  • nbVirmt=Lire.i();
  • nbDebit=n.totalDebit(nbCb,nbChq,nbVirmt);
  • prctCb=n.percent(nbCb,nbDebit);
  • prctChq=n.percent(nbChq,nbDebit);
  • prctVirmt=n.percent(nbVirmt,nbDebit);
  • System.out.println("Nombre total d'ordres de débits emis:"+nbDebit);
  • System.out.println("Pourcentage de paiements par carte bleue: "+prctCb +"%");
  • System.out.println("Pourcentage de paiements par chèques: "+prctChq+ "%");
  • System.out.println("Pourcentage de paiements par virements: "+prctVirmt+ "%");
  • }
  • catch(Exception e){
  • System.out.println("Exception :"+e);
  • }
  • }
  • }
Interface

/**
 * @(#)MyInterface.java
 *
 *
 * @author serge toure
 * @version 1.00 2008/5/6
 */
import java.rmi.*;

public interface MyInt extends Remote {

   public int checkpiece(int piece) throws RemoteException;
   public String bilan()throws RemoteException;
   public String checkforchange() throws RemoteException;
   public void init()throws RemoteException;
   public int totalDebit(int cb,int chq,int virmt) throws RemoteException;
   public float percent(int val, int total) throws RemoteException;
   
}


Le serveur

/**
 * @(#)MyserverImpl.java
 *
 *
 * @author serge toure 
 * @version 1.00 2008/5/6
 */

import java.rmi.server.*;
import java.rmi.*;
import java.net.*;



public class servImpl extends UnicastRemoteObject implements MyInt {
	
    
    
    /**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	int nbPiece1F=0;int nbPiece2F=0;int nbPiece5F=0;
    	int totalRecu=0;
    
    public servImpl() throws RemoteException {
    	super();
    }
   
   
   
   
   
    public int checkpiece(int piece) throws RemoteException{
    
    		
    			switch(piece){
    				case 1:
    					nbPiece1F=nbPiece1F+1;
    					break;
    					case 2:
    						nbPiece2F=nbPiece2F+1;
    						break;
    						case 5:
    							nbPiece5F=nbPiece5F+1;
    							break;
    							default:
    								piece=0;
    								
    			}
    			totalRecu=totalRecu+piece;
    			return totalRecu;
    }
    		
    		public String bilan() throws RemoteException{
    			
    			return ("Vous avez entrés:\n"+
    			+nbPiece1F+"  piece(s) de 1F \n"
    			+nbPiece2F+"  piece(s) de 2F \n"
    			+nbPiece5F+"  piece(s) de 5F \n"
    			+"Soit un total de :"+totalRecu+ "F\n"	
    		
    	
    		+"Je vous serre un cafe");
    			}
    			
    			
    			
    			
    			
    			
    			
    			public String checkforchange() throws RemoteException{
    			int change=0;
    		if(totalRecu>3)
    		change=totalRecu-3;
    			return "Et je vous rends la monnaie de valeur:"+change+"F";
    			
    			}	
    		
    		public void init()throws RemoteException{
    			
    			nbPiece1F=0;
    			nbPiece2F=0;
    			nbPiece5F=0;
    	        totalRecu=0;
    
    		
    		}
    		
    		public int totalDebit(int cb,int chq,int virmt) throws RemoteException{
    		
    		int nbDebit=0;
    		nbDebit=cb+chq+virmt;
    		return nbDebit;
    		}
    		
    		public float percent(int val, int total) throws RemoteException{
    			
    		float prct=0;
    		prct=(float)(val *100/total);
    		return prct;
    		}
   
    		
    		
    		
   
    	 public static void main (String[]args){
    	
    	try{
    	servImpl s=new servImpl();
    	Naming.rebind("myserver",s);
    	System.out.println("Server ready to work now!");
    	}
    	catch(RemoteException e){
    		System.out.println("RemoteException "+ e);
    	}
    	catch(MalformedURLException e){
    		System.out.println("Malformed "+e);
    	}
    }


}


Le client

/**
 * @(#)Myclient.java
 *
 *
 * @author serge toure
 * @version 1.00 2008/5/6
 */


import java.rmi.*;
public class Monclient {
	

    public static void main(String[]args) {
    	int piece,total;
    	char rep='o';
    	String mess1,mess2;
    	int nbCb=0,nbChq=0,nbVirmt=0,nbDebit=0;
    	float prctCb=0,prctChq=0,prctVirmt=0;
    	try{
    		MyInt n=(MyInt)Naming.lookup("rmi://sergetoure:1099/myserver");
    		System.out.println("");
    		System.out.println("");
    		System.out.println("");
    		System.out.println("************************Bienvenue au cafe monnaie!******************************");
    		
    		do{
    		
    		System.out.println("Entrer au moins 3F pour obtenir un cafe");
    		System.out.println("Les pieces acceptées sont:1F,2F et 5F");
    		do{
    		piece=Lire.i();
    		if((piece!=1)&& (piece!=2 )&&( piece!=5)){
    		
    			System.out.println("Veuillez entrer une piece de 1F,2F ou de 5F SVP!");}
    		total=n.checkpiece(piece);
    		}while(total<3);
    	mess1=n.bilan();
    	System.out.println(mess1);
    	mess2=n.checkforchange();
    	System.out.println(mess2);
    	
    	n.init();
    	
    	System.out.println("Voulez vous en un autre? o/n");
    	do{
    		System.out.println("Entrer 'o' pour continuer et 'n' pour quitter!");
    	
    	rep=Lire.c();
    	
    	}while ((rep!='o')&&(rep!='n'));
    	
    		}while(rep=='o');
    		System.out.println("Merci d'avoir utilise cafe monnaie *BONNE JOURNEE A VOUS*");
    		System.out.println("");
    		System.out.println("");
    		System.out.println("");
    	
    	
    	System.out.println("*********************STATISTIQUE*****************************");
    	
    	
    	System.out.println("Nombre de paiements par carte bleue: ");
    	nbCb=Lire.i();
    	
    	System.out.println("Nombre de paiements par chèque: ");
    	nbChq=Lire.i();
    	
    	System.out.println("Nombre de paiements par virements: ");
    	nbVirmt=Lire.i();
    	
    	nbDebit=n.totalDebit(nbCb,nbChq,nbVirmt);
    	
    	prctCb=n.percent(nbCb,nbDebit);
    	prctChq=n.percent(nbChq,nbDebit);
    	prctVirmt=n.percent(nbVirmt,nbDebit);
    	
    	
    	System.out.println("Nombre total d'ordres de débits emis:"+nbDebit);
    	System.out.println("Pourcentage de paiements par carte bleue: "+prctCb +"%");
    	System.out.println("Pourcentage de paiements par chèques: "+prctChq+ "%");
    	System.out.println("Pourcentage de paiements par virements: "+prctVirmt+ "%");
    		
    		
    	}
    	catch(Exception e){
    		System.out.println("Exception :"+e);
    	}
    }
}

 Conclusion

Ce programme est très basique et permettra a ceux qui veulent connaitre RMI de s'y attacher davantage!
Merci

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

09 mai 2008 13:08:29 :
erreur syntaxe

 Sources de la même categorie

Source avec Zip APPLICATION DE CHAT EN JAVA RMI par MedZT
Source avec Zip L'EXERCICE PROPOSÉ INTRODUIT L'UTILISATION DES SERVICES RMI ... par 17182
Source avec Zip COURS - EXEMPLE D'UTILISATION DE RMI (REMOTE METHOD INVOCATI... par lambdacrash
Source avec Zip CALCUL DE MATRICES A DISTANCE RMI JAVA par Abdellah81
Source avec Zip Source avec une capture PROJET POUR L'IMPLÉMENTATION D'UN WORKFLOW DE GESTION DES CO... par mdrjeuxvideo

 Sources en rapport avec celle ci

Source avec Zip COURS - EXEMPLE D'UTILISATION DE RMI (REMOTE METHOD INVOCATI... par lambdacrash
Source avec Zip CALCUL DE MATRICES A DISTANCE RMI JAVA par Abdellah81
Source avec Zip OBSERVER ET OBSERVABLE EN RMI par indiana_jules
Source avec Zip TCHATCHE par kasraouizied
Source avec Zip EXEMPLE D'UTILISATION DES RMI par joe200

Commentaires et avis

Commentaire de sarahbelle le 14/05/2008 18:16:16

comment je peut compilé avec jbuilder12

Commentaire de sergetoure le 15/05/2008 15:22:39

Moi particulierement j'utilise plutot eclipse ou jcreator mais bon ça doit se passer de la meme façon .Prends soin de definir un dossier dans lequel tu mettras tous tes programme ensuite tu definis ce dossier comme classpath dans les variables d'environnement windows.

Commentaire de sarahbelle le 18/05/2008 22:42:16

mrci pour votre réponce tu peut mieux m'expliquer encore

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

RMI [ par Aldee ] Quelle configuration minimum me faut-il pour tester une liaison RMI? Un/Deux ordinateur "basique" avec Java, deux cartes reseaux et une ficelle entre? java rmi [ par scorpionetoile ] salut a toutje veus tester un petit exemple en java utilisant rmi,je l'ai execute sur mon poste mais le problemec'est que je veus l'executer sur 2 pos RMI REGISTRY [ par efr ] efrEst il possible de m'expliquer comment fonctionne la méthode Http Post avec RMI pour eviter les firewalls envoyer un fichier en RMI [ par lutecefalco ] Salut à tous,j'ai à disposition un serveur avec le logiciel R d'installé dessus.A partir de mon PC, je génère un script et je dois l'envoyer en RMI su Communication RMI [ par homersimp ] J'aimerai relié une applet et une servlet. Mais comme la communication RMI ne marche pas toujours, je voudrais que l'applet essaie d'abord de ce conn Rmi et Jnlp [ par homersimp ] Mon but est de réaliser une applet dans un fichier jnlp, qui devrait se connecter à une servlet sur serveur(avec exemple de DaytimeServer et applet.Si RMI et Visual J++ [ par egamir ] J'ai développé une classe java "client.java" avec la SDK de sun (qui s'exécute parfaitement avec la jvm de sun).Cette classe importe le package java.r RMI et Visual J++ [ par egamir ] J'ai développé une classe java "client.java" avec la SDK de sun (qui s'exécute parfaitement avec la jvm de sun).Cette classe importe le package java.r Problème JAVA RMI Hello World [ par missgaelle ] Bonsoir à tous,Voilà, je viens de créer un hello world en JAVA avec rmi...ah oui, détail importante, je ne suis qu'un mini débutante en prog, on me de RMI => Problemes d'IPs [ par Bulzebok ] J'ai chez moi 2 PC, l'un et mon PC usuel et l'autre et simplement une passerel pour allez sur le NET et qui tourne en permanence et ki soulage le prem


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,310 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales