360 likes | 442 Views
Applications Réseaux en Java. Li Xinran Mancone Nicolas. Sommaire. Présentation Réalisation Amélioration Conclusion. Présentation.
E N D
Applications Réseaux en Java Li Xinran Mancone Nicolas
Sommaire • Présentation • Réalisation • Amélioration • Conclusion
Présentation Le but de ce projet est de mettre en pratique ce qui a été vu en théorie sur la couche application du modèle OSI . Pour cela nous avons mis en œuvre 3 applications Java: • Un simulateur de serveur • Un client SMTP • Un redirecteur de mail
Réalisation La conception du code a été faite grâce au partage des classes: -L’interface graphique -Le code de connexion -Le code de traitement de donnée
SMTP • Simple Mail Transfer Protocol • Protocole permettant le transfert du courrier électronique • Agent utilisateur (UA) • Agent de transfert (MTA) • Port 25
SMTP Commands 220 relay-em.wanadoo.frESMTP Postfix • HELO • MAIL FROM • RCPT TO • DATA • QUIT HELO smtp.wanadoo.fr 250 relay-em.wanadoo.fr MAIL From: xinran_gtr@wanadoo.fr 250 Ok RCPT To:nico4486@gmail.com 250 Ok DATA 354 End data with <CR><LF>.<CR><LF> Message … . 250 Ok QUIT 221 Bye
SMTP – principe de fonctionnement • Socket sock = new Socket(host,25); • outData=new BufferedWriter(new OutputStreamWriter(sock.getOutputStream()); • inData=new BufferedReader(new InputStreamReader(sock.getInputStream()));
SMTP – principe de fonctionnement • 220 relay-em.wanadoo.frESMTP Postfix • HELO smtp.wanadoo.fr • 250 relay-em.wanadoo.fr • msg="HELO "+host+"\r\n"; envoi_Data(msg); attendre_Data("250");
SMTP – principe de fonctionnement • MAIL FROM: xinran_gtr@wanadoo.fr • 250 Ok • msg = "MAIL FROM:<" + fromAddress + ">"+"\r\n" ; envoi_Data(msg);attendre_Data("250");
SMTP – principe de fonctionnement • RCPT To:nico4486@gmail.com • 250 Ok • msg="RCPT TO:<" + toAddress + ">"+"\r\n";envoi_Data(msg);attendre_Data("250");
SMTP – principe de fonctionnement • DATA • 354 End data with <CR><LF>.<CR><LF> • msg = "DATA"+"\r\n"; envoi_Data(msg);attendre_Data("354");msg =contenu+"\r\n.\r\n";envoi_Data(msg);
SMTP – principe de fonctionnement • msg = "DATA"+"\r\n"; envoiData(msg); waitData("354");Date sentDate = new Date(); SimpleDateFormat formatter1= new SimpleDateFormat("EEE,d MMM yyyy hh:mm:ss z"); msg = "Date: " + formatter1.format(sentDate)+"\r\n"; envoiData(msg); msg="From: "+ fromAddress+"\r\n"; envoiData(msg); msg="To: "+toAddress+"\r\n"; envoiData(msg); msg = "Subject: "+subject+"\r\n" ; envoiData(msg); msg = content; envoiData(msg); msg ="\r\n.\r\n"; envoiData(msg);
SMTP – principe de fonctionnement • QUIT • 221 Bye • envoiData(msg);attendre_data(221);outData.close();sock.close();
POP3 • Post Office Protocol • Protocole permettant d'aller récupérer son courrier sur un serveur distant • Agent de transfert (MTA) • Port 110
POP3 Commands +OK connected to pop3 on 1704 • USER • PASS • STAT • LIST • RETR x • DELE x • QUIT USERxinran.li +OK Name is a valid mailbox PASS qwerty123 +OK Maildrop ready STAT +OK 2 320 LIST +OK 2 messages (320 octets) 1 120 2 200 QUIT +OK dewey POP3 server signing off (maildrop empty)
POP3 – principe de fonctionnement • Socket sock_pop = new Socket(pop,110); • pop_out = new BufferedWriter(new OutputStreamWriter(sock_pop.getOutputStream())); • pop_in=new BufferedReader(new InputStreamReader(sock_pop.getInputStream()));
POP3 – principe de fonctionnement • +OK connected to pop3 on 1704 USERxinran.li +OK Name is a valid mailbox • attendre_data("\n",pop_in); envoi_data("user"+plogin+"\r\n",pop_out);attendre_data("+OK",pop_in);
POP3 – principe de fonctionnement • PASS qwerty123 +OK Maildrop ready • envoi_data("pass "+ppass+"\r\n",pop_out);attendre_data("+OK",pop_in) ;
POP3 – principe de fonctionnement • LIST +OK 2 messages (320 octets) 1 120 2 200 • envoi_data("list\r\n",pop_out) ; String listing=recup_jusqua(".\r\n",pop_in);
POP3 – principe de fonctionnement • QUIT +OK dewey POP3 server signing off (maildrop empty) • envoi_data("QUIT",pop_out);attendre_data("+OK",pop_in);pop_out.close();sock_pop.close();
Le fichier des comptes Pour récupérer tous les comptes du fichier et les mettre dans un tableau: count est la variable contenant le nombre de compte dans le ficher
Amélioration possible Redirecteur de mails -Gérer d'autres protocoles de messagerie (IMAP,APOP)-Optimiser le transfert -Ajouter un fichier de rapport d’événement
Amélioration possible Client SMTP -Encoder le contenu du mail et mettre l'option d'ajout de fichier
Amélioration possible Simulateur de serveur: -Les connections au serveur ce limite au nombre de port distant (à la base il ne devait accepter qu'un seul client) -La gestion des connections par des onglets -Gestion de fichier de configuration
Conclusion Sites de références: • http://www.ethereal.com/ Analyseur de réseaux • http://abcdrfc.free.fr/ La plupart des RFC en français • http://netcat.sourceforge.net/ Le couteau suisse pour le réseau • http://www.google.fr ! Merci