Systeme de messagerie interne

Résolu
cs_youness601 Messages postés 6 Date d'inscription jeudi 15 mars 2007 Statut Membre Dernière intervention 28 janvier 2011 - 23 déc. 2010 à 08:39
 Bebertos - 12 juin 2015 à 18:34
Bonjour à tous,

mon objectif est de réaliser un système de messagerie interne,
c'est à dire :
[*] une application côté client qui nous permet de gérer nos messages (envoyer message, consultation des messages reçus, ...)


[*]une application côté serveur qui permet de gérer les requêtes des clients. par exemple si un client envoie un message le serveur va :
[list]
[*] Vérifier l’existence du destinataire dans la base de données
[*] Envoyer le message au destinataire (si le destinataire existe)
[*] Envoyer des messages d’états à l’émetteur et au récepteur (messages de notifications (il y a succès ou erreur))
/list

j'espère que l'idée est un peu claire !
ce que je cherche pour le moment c'est la technologie la plus simple avec laquelle je vais réaliser l'application (RMI ou Socket, ....), SVP si vous avez des idées n'hésitez pas

Merci :-)

7 réponses

Utilisateur anonyme
23 déc. 2010 à 11:43
Bonjour

RMI suffirait pour faire ça. Si tu veux, je pourrai t'envoyer un exemple tout simple qui envoie une chaine de caractère du client au serveur, ça peut te servir de base de départ. Franchement, c'est bête mais une fois que tu arrives à faire ça, le gros du boulot est fait si tu comprends bien le code.


















3
cs_youness601 Messages postés 6 Date d'inscription jeudi 15 mars 2007 Statut Membre Dernière intervention 28 janvier 2011
23 déc. 2010 à 20:48
Bonsoir,
Merci pour ta réponse :-)
et bien sûr j'aimerai bien recevoir ton exemple.

Cdlt
0
Utilisateur anonyme
23 déc. 2010 à 23:42
import java.io.*;
import java.rmi.Naming;
import java.rmi.RMISecurityManager;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;

/*java -Djava.security.policy=firsttry.policy -Djava.rmi.server.codebase=http://? -Djava.rmi.server.hostname=? Server ip port*/
public class Server{


      public static void main(String[] args)throws Exception{
          if(args.length<3)
      {System.err.println("usage: java Server host port object");
       System.exit(1);
      }
  Registry reg= LocateRegistry.createRegistry(Integer.parseInt(args[1]));
  if(System.getSecurityManager()==null)
              System.setSecurityManager(new RMISecurityManager()); 
  IDistantObject d=new DistantObject();
  Naming.rebind("rmi://"+args[0]+":"+args[1]+"/"+args[2],d);      
      } 
} 


import java.rmi.Remote;
import java.rmi.RemoteException;
import java.util.Vector;

public interface IDistantObject extends Remote{


      public void put(String line)throws RemoteException;           
      
      public Vector<String> getContent()throws RemoteException; 
}


import java.rmi.Naming;
/*java -Djava.security.policy=firsttry.policy Client ip port*/
public class Client{


    public static void main(String[] args)throws Exception{
          if(args.length<3)
      {System.err.println("usage: java Client host port object");
       System.exit(1);
      }
          IDistantObject d=(IDistantObject)Naming.lookup("rmi://"+args[0]+":"+args[1]+"/"+args[2]);
          System.out.println("avant, taille = "+d.getContent().size());
  d.put("vive java"); 
  System.out.println("apres, taille = "+d.getContent().size());
    } 

}




import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
import java.util.Vector;

/*UnicastRemoteObject evite d'avoir a faire exportObject dans le serveur*/
public class DistantObject extends UnicastRemoteObject implements IDistantObject{            
    
    
    private Vector<String> content;
    
    public static final long serialVersionUID=1;
    
    
    public DistantObject()throws RemoteException{
        content=new Vector<String>();
    } 

    
    public synchronized void put(String line)throws RemoteException{
        content.add(line);
    } 

    public synchronized Vector<String> getContent()throws RemoteException{
        return(content);
    } 	    	    	    	    	    	    
} 


firsttry.policy
grant{
permission java.net.SocketPermission "*:1024-65535", "connect,accept";
permission java.net.SocketPermission "*:80", "connect";
};



Voilà, à toi de mettre la bonne adresse IP et le bon port. Bon courage.
















0
Utilisateur anonyme
23 déc. 2010 à 23:44
N'oublie pas d'utiliser un nom pour identifier l'objet distant, j'ai oublié de le mettre ci-dessus.






0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_youness601 Messages postés 6 Date d'inscription jeudi 15 mars 2007 Statut Membre Dernière intervention 28 janvier 2011
24 déc. 2010 à 02:06
Je te remercie encore pour tes réponses

Bonne nuit
0
Utilisateur anonyme
24 déc. 2010 à 10:18
De rien, bon courage pour ton projet








0
Bonjour,
Je débarque 5 ans après donc je doute que ma requète aboutisse, mais aurais tu par hasard gardé ton code pour ton projet?

Je suis entrain de programmer quelque chose de similaire, mais je me débrouille très très mal en java, et j'aurais bien besoin d'un exemple pour m'en servir de modèle.

Mercim
0
Rejoignez-nous