Précédent   Forum du club des développeurs et IT Pro > Java > Général Java > Langage > Autres > Programmation par agent
Programmation par agent Forum d'entraide pour la programmation orientée agents et les frameworks associés (JADE, JACK, Jadex, JAgent, Janus, Jason, MadKit, ...)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Actualité déjà publiée
 
Outils de la discussion
Publicité
'
Vieux 23/06/2011, 13h36   #161
manare
Membre du Club
 
Femme Manar
Etudiante
Inscription : avril 2009
Messages : 33
Détails du profil
Informations personnelles :
Nom : Femme Manar
Localisation : Algérie

Informations professionnelles :
Activité : Etudiante

Informations forums :
Inscription : avril 2009
Messages : 33
Points : 40
Points : 40
Citation:
Envoyé par Djug Voir le message
ah, je crois que j'ai compris le problème;

la ligne suivante
Code :
byte[] publicKey = rsa.getPublicKeyInBytes();
génère un tableau qui contient une pair de clé privé et publique,

actuellement ton code récupère une référence sur ce tableau ([B@1f89785)
ou lieu de récupérer la clé,

donc il faut lire la clé à partir du tableau publicKey , puis l'envoyer au 2e agent
ok , je travail avec celle ci : ftp://ftp-developpez.com/java/sources/MyRSA.java
j'ai changé
Code :
1
2
3
Rsa rsa = new Rsa();
		    rsa.generateKeyPair();
		    RSAPublicKey key2 =rsa.getPublicKey();
voici le résultat de exécution :Main _container :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
Microsoft Windows [version 6.1.7600]
Copyright (c) 2009 Microsoft Corporation. Tous droits réservés.
 
C:\Users\admin>java jade.Boot -container
23 juin 2011 11:03:48 jade.core.Runtime beginContainer
INFO: ----------------------------------
    This is JADE snapshot - revision $WCREV$ of $WCDATE$
    downloaded in Open Source, under LGPL restrictions,
    at http://jade.tilab.com/
----------------------------------------
23 juin 2011 11:03:48 jade.core.BaseService init
INFO: Service jade.core.management.AgentManagement initialized
23 juin 2011 11:03:48 jade.core.BaseService init
INFO: Service jade.core.messaging.Messaging initialized
23 juin 2011 11:03:48 jade.core.BaseService init
INFO: Service jade.core.mobility.AgentMobility initialized
23 juin 2011 11:03:48 jade.core.BaseService init
INFO: Service jade.core.event.Notification initialized
23 juin 2011 11:03:48 jade.core.messaging.MessagingService clearCachedSlice
INFO: Clearing cache
23 juin 2011 11:03:48 jade.core.AgentContainerImpl joinPlatform
INFO: --------------------------------------
Agent container Container-1@admin-HP is ready.
--------------------------------------------
AgentService STARTED
AgentService REGISTERED WITH THE DF
Att Agent Lanceur
message recu de Agent Lanceur et registre sous pubkey= [B@e265d0
23 juin 2011 11:04:23 jade.core.messaging.MessagingService clearCachedSlice
INFO: Clearing cache
le msg recu de  AV = public key
message envoyÚ Ó la Agent Vendeur = [B@e265d0
23 juin 2011 11:05:29 jade.core.Runtime$1 run
INFO: JADE is closing down now.
 
C:\Users\admin>java jade.Boot -gui
23 juin 2011 12:16:51 jade.core.Runtime beginContainer
INFO: ----------------------------------
    This is JADE snapshot - revision $WCREV$ of $WCDATE$
    downloaded in Open Source, under LGPL restrictions,
    at http://jade.tilab.com/
----------------------------------------
23 juin 2011 12:16:52 jade.core.BaseService init
INFO: Service jade.core.management.AgentManagement initialized
23 juin 2011 12:16:52 jade.core.BaseService init
INFO: Service jade.core.messaging.Messaging initialized
23 juin 2011 12:16:52 jade.core.BaseService init
INFO: Service jade.core.mobility.AgentMobility initialized
23 juin 2011 12:16:52 jade.core.BaseService init
INFO: Service jade.core.event.Notification initialized
23 juin 2011 12:16:52 jade.core.messaging.MessagingService clearCachedSlice
INFO: Clearing cache
23 juin 2011 12:16:53 jade.mtp.http.HTTPServer <init>
INFO: HTTP-MTP Using XML parser com.sun.org.apache.xerces.internal.jaxp.SAXParse
rImpl$JAXPSAXParser
23 juin 2011 12:16:53 jade.core.messaging.MessagingService boot
INFO: MTP addresses:
http://admin-HP:7778/acc
23 juin 2011 12:16:53 jade.core.AgentContainerImpl joinPlatform
INFO: --------------------------------------
Agent container Main-Container@admin-HP is ready.
--------------------------------------------
23 juin 2011 12:16:56 jade.core.PlatformManagerImpl localAddNode
INFO: Adding node <Container-1> to the platform
23 juin 2011 12:16:56 jade.core.messaging.MessagingService clearCachedSlice
INFO: Clearing cache
23 juin 2011 12:16:56 jade.core.PlatformManagerImpl$1 nodeAdded
INFO: --- Node <Container-1> ALIVE ---
Exception in thread "Thread-15" java.lang.ClassCastException: sun.net.www.protoc
ol.ftp.FtpURLConnection cannot be cast to java.net.JarURLConnection
        at jade.util.ClassFinder.findSubclasses(ClassFinder.java:362)
        at jade.util.ClassFinder.findSubclasses(ClassFinder.java:297)
        at jade.util.ClassFinder.findSubclasses(ClassFinder.java:119)
        at jade.gui.ClassSelectionDialog$ClassUpdater.run(ClassSelectionDialog.j
ava:119)
        at java.lang.Thread.run(Unknown Source)
 la clÚ public :Sun RSA public key, 1024 bits
  modulus: 921090126562396638831238337497900974121794071138617169989950449945155
33493018999956081768167459317506073388275006083230484099762839623732835956033721
51757387442611179311224814607947462490019794390915269392184445676049342644707680
3059990529247559686179694892654436334715742653717831069548372663114290403678803
  public exponent: 65537
et dans le Container_1 :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
Microsoft Windows [version 6.1.7600]
Copyright (c) 2009 Microsoft Corporation. Tous droits réservés.
 
C:\Users\admin>java jade.Boot -container
23 juin 2011 11:03:48 jade.core.Runtime beginContainer
INFO: ----------------------------------
    This is JADE snapshot - revision $WCREV$ of $WCDATE$
    downloaded in Open Source, under LGPL restrictions,
    at http://jade.tilab.com/
----------------------------------------
23 juin 2011 11:03:48 jade.core.BaseService init
INFO: Service jade.core.management.AgentManagement initialized
23 juin 2011 11:03:48 jade.core.BaseService init
INFO: Service jade.core.messaging.Messaging initialized
23 juin 2011 11:03:48 jade.core.BaseService init
INFO: Service jade.core.mobility.AgentMobility initialized
23 juin 2011 11:03:48 jade.core.BaseService init
INFO: Service jade.core.event.Notification initialized
23 juin 2011 11:03:48 jade.core.messaging.MessagingService clearCachedSlice
INFO: Clearing cache
23 juin 2011 11:03:48 jade.core.AgentContainerImpl joinPlatform
INFO: --------------------------------------
Agent container Container-1@admin-HP is ready.
--------------------------------------------
AgentService STARTED
AgentService REGISTERED WITH THE DF
Att Agent Lanceur
message recu de Agent Lanceur et registre sous pubkey= [B@e265d0
23 juin 2011 11:04:23 jade.core.messaging.MessagingService clearCachedSlice
INFO: Clearing cache
le msg recu de  AV = public key
message envoyÚ Ó la Agent Vendeur = [B@e265d0
23 juin 2011 11:05:29 jade.core.Runtime$1 run
INFO: JADE is closing down now.
 
C:\Users\admin>java jade.Boot -gui
23 juin 2011 12:16:51 jade.core.Runtime beginContainer
INFO: ----------------------------------
    This is JADE snapshot - revision $WCREV$ of $WCDATE$
    downloaded in Open Source, under LGPL restrictions,
    at http://jade.tilab.com/
----------------------------------------
23 juin 2011 12:16:52 jade.core.BaseService init
INFO: Service jade.core.management.AgentManagement initialized
23 juin 2011 12:16:52 jade.core.BaseService init
INFO: Service jade.core.messaging.Messaging initialized
23 juin 2011 12:16:52 jade.core.BaseService init
INFO: Service jade.core.mobility.AgentMobility initialized
23 juin 2011 12:16:52 jade.core.BaseService init
INFO: Service jade.core.event.Notification initialized
23 juin 2011 12:16:52 jade.core.messaging.MessagingService clearCachedSlice
INFO: Clearing cache
23 juin 2011 12:16:53 jade.mtp.http.HTTPServer <init>
INFO: HTTP-MTP Using XML parser com.sun.org.apache.xerces.internal.jaxp.SAXParse
rImpl$JAXPSAXParser
23 juin 2011 12:16:53 jade.core.messaging.MessagingService boot
INFO: MTP addresses:
http://admin-HP:7778/acc
23 juin 2011 12:16:53 jade.core.AgentContainerImpl joinPlatform
INFO: --------------------------------------
Agent container Main-Container@admin-HP is ready.
--------------------------------------------
23 juin 2011 12:16:56 jade.core.PlatformManagerImpl localAddNode
INFO: Adding node <Container-1> to the platform
23 juin 2011 12:16:56 jade.core.messaging.MessagingService clearCachedSlice
INFO: Clearing cache
23 juin 2011 12:16:56 jade.core.PlatformManagerImpl$1 nodeAdded
INFO: --- Node <Container-1> ALIVE ---
Exception in thread "Thread-15" java.lang.ClassCastException: sun.net.www.protoc
ol.ftp.FtpURLConnection cannot be cast to java.net.JarURLConnection
        at jade.util.ClassFinder.findSubclasses(ClassFinder.java:362)
        at jade.util.ClassFinder.findSubclasses(ClassFinder.java:297)
        at jade.util.ClassFinder.findSubclasses(ClassFinder.java:119)
        at jade.gui.ClassSelectionDialog$ClassUpdater.run(ClassSelectionDialog.j
ava:119)
        at java.lang.Thread.run(Unknown Source)
 la clÚ public :Sun RSA public key, 1024 bits
  modulus: 921090126562396638831238337497900974121794071138617169989950449945155
33493018999956081768167459317506073388275006083230484099762839623732835956033721
51757387442611179311224814607947462490019794390915269392184445676049342644707680
3059990529247559686179694892654436334715742653717831069548372663114290403678803
  public exponent: 65537L'agent Lanceur vas envoyÚ la clÚ pub @ Agent ServiceSun
 RSA public key, 1024 bits
  modulus: 921090126562396638831238337497900974121794071138617169989950449945155
33493018999956081768167459317506073388275006083230484099762839623732835956033721
51757387442611179311224814607947462490019794390915269392184445676049342644707680
3059990529247559686179694892654436334715742653717831069548372663114290403678803
  public exponent: 65537
L'agent Lanceur vas envoyÚ la clÚ pub @ Agent ServiceSun RSA public key, 1024 bi
ts
  modulus: 921090126562396638831238337497900974121794071138617169989950449945155
33493018999956081768167459317506073388275006083230484099762839623732835956033721
51757387442611179311224814607947462490019794390915269392184445676049342644707680
3059990529247559686179694892654436334715742653717831069548372663114290403678803
  public exponent: 65537
je m 'appel AgentLanceur
23 juin 2011 12:17:34 jade.core.Runtime beginContainer
INFO: ----------------------------------
    This is JADE snapshot - revision $WCREV$ of $WCDATE$
    downloaded in Open Source, under LGPL restrictions,
    at http://jade.tilab.com/
----------------------------------------
23 juin 2011 12:17:34 jade.core.BaseService init
INFO: Service jade.core.management.AgentManagement initialized
23 juin 2011 12:17:34 jade.core.BaseService init
INFO: Service jade.core.messaging.Messaging initialized
23 juin 2011 12:17:34 jade.core.BaseService init
INFO: Service jade.core.mobility.AgentMobility initialized
23 juin 2011 12:17:34 jade.core.BaseService init
INFO: Service jade.core.event.Notification initialized
23 juin 2011 12:17:34 jade.core.PlatformManagerImpl localAddNode
INFO: Adding node <Container-2> to the platform
23 juin 2011 12:17:34 jade.core.messaging.MessagingService clearCachedSlice
INFO: Clearing cache
23 juin 2011 12:17:34 jade.core.messaging.MessagingService clearCachedSlice
INFO: Clearing cache
23 juin 2011 12:17:34 jade.core.PlatformManagerImpl$1 nodeAdded
INFO: --- Node <Container-2> ALIVE ---
23 juin 2011 12:17:34 jade.mtp.http.HTTPServer <init>
INFO: HTTP-MTP Using XML parser com.sun.org.apache.xerces.internal.jaxp.SAXParse
rImpl$JAXPSAXParser
23 juin 2011 12:17:34 jade.mtp.http.HTTPServer <init>
ATTENTION: Port 7778 is already in used, selected another one
23 juin 2011 12:17:34 jade.core.messaging.MessagingService clearCachedSlice
INFO: Clearing cache
23 juin 2011 12:17:34 jade.core.messaging.MessagingService boot
INFO: MTP addresses:
http://admin-HP:57936/acc
23 juin 2011 12:17:34 jade.core.AgentContainerImpl joinPlatform
INFO: --------------------------------------
Agent container Container-2@admin-HP is ready.
--------------------------------------------
l
Citation:
normalement ça marche sauf la premiere exception , Meeeeerci infiniment msr Djug
manare est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2011, 10h21   #162
manare
Membre du Club
 
Femme Manar
Etudiante
Inscription : avril 2009
Messages : 33
Détails du profil
Informations personnelles :
Nom : Femme Manar
Localisation : Algérie

Informations professionnelles :
Activité : Etudiante

Informations forums :
Inscription : avril 2009
Messages : 33
Points : 40
Points : 40
Bonjour ,

j'ai 4 agent les echanges des messages entre eux se fait tout est bien sauf le dernier voici le code de chaque agent (le cas Ou le msg n'arrive pas)
> Agent Vendeur demande la clé de l'Agent Service
quand j'ai exécuté
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
  Agent Vendeur
package MonPackage;

import java.sql.Connection;

import com.mysql.jdbc.Driver;

import MonPackage.Rsa;

import jade.domain.FIPAAgentManagement.DFAgentDescription;
public class AgentVendeur extends Agent {
	 
protected void setup(){
	Connection connection;
	 String prod =null;
	

//----------------------------------start& registre AV------------------------------------
final SequentialBehaviour comportementSequentiel = new SequentialBehaviour();
System.out.println(getLocalName()+" STARTED");

try {
DFAgentDescription dfd = new DFAgentDescription();
dfd.setName(getAID());
// Enregistrement de la description de l'agent dans DF (Directory Facilitator)
DFService.register(this, dfd);
System.out.println(getLocalName()+" REGISTERED WITH THE DF");
} catch (FIPAException e) {
e.printStackTrace();
}
//-------------------------------------waite  msg from de AM  ----------------------------------
comportementSequentiel.addSubBehaviour(new OneShotBehaviour(){
	@Override
public void action() {

		 System.out.println(" Agent Vendeur en Attente  Agent Mobile  ");
		 ACLMessage msg2Recu =null ;
		 while (msg2Recu == null){
		 msg2Recu= receive() ;
		}
		 System.out.println(" Agent Vendeur :message recu de Agent Mobile = "+ msg2Recu.getContent());}
	});
         
		 
//----------------------------------------------------------------------------------------------------
        comportementSequentiel.addSubBehaviour(new OneShotBehaviour(){
        	@Override
        	public void action() {
        	 ACLMessage msg3 = new ACLMessage(ACLMessage.INFORM);
       	     msg3.addReceiver(new AID("AgentService", AID.ISLOCALNAME));
       	     msg3.setContent("public key");
       	     send(msg3);
       	     System.out.println("L'agent Vendeur  vas interoger l'Agent Service pour  demandé la clé pub "+msg3.getContent());  
        	}
        	});
        addBehaviour(comportementSequentiel);
 //-----------------------------------------------------------------------------------------------------
        addBehaviour(new CyclicBehaviour(this) {
			public void action() {
		    System.out.println("L'agent Vendeur  en attente l'Agent Service  ");  
			
			ACLMessage msg = receive(MessageTemplate.MatchPerformative(ACLMessage.INFORM));
			if (msg != null) {		
				try {
				System.out.println(" Agent Vendeur : message recu de Agent Service = "+msg.getContentObject() );
			    } catch (UnreadableException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			  }	
			    } 
			
			else block();
			
			
			}});
        
 //-------------------------------------------------------------------------------------------------
				
      /*  comportementSequentiel.addSubBehaviour(new OneShotBehaviour(){
        	@Override
        	public void action() {
        		ACLMessage msg11 = receive(MessageTemplate.MatchPerformative(ACLMessage.INFORM));
        		System.out.println("L'agent Vendeur  attente l'Agent Service  ");  
		         while (msg11== null){	msg11 = receive() ;}
		  
		         try {
					System.out.println("Agent Vendeur : message recu de l'Agent Service   = "+ msg11.getContentObject());
				} catch (UnreadableException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
        	}
        	});*/
       	
 //-------------------------------------------------------------------------------------------------------
       
        comportementSequentiel.addSubBehaviour(new OneShotBehaviour(){
        	@Override
        	public void action() {
        		
        	    // --- cryptage --- 
        	}
        	});
				
				
  //---------------------------------------------------------------------------------------------------
        
        comportementSequentiel.addSubBehaviour(new OneShotBehaviour(){
        	@Override
        	public void action() {
        		
        	    // --- Terminisation --- 
        	}
        	});
				
        
}

}
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
  Agent Service 
package MonPackage;

import java.io.IOException;
import java.io.Serializable;
import java.security.interfaces.RSAPublicKey;

import MonPackage.Rsa;
import jade.core.AID;
import jade.core.Agent;
import jade.core.behaviours.CyclicBehaviour;
import jade.core.behaviours.OneShotBehaviour;
import jade.core.behaviours.SequentialBehaviour;
import jade.domain.DFService;
import jade.domain.FIPAException;
import jade.domain.FIPAAgentManagement.DFAgentDescription;
import jade.lang.acl.ACLMessage;
import jade.lang.acl.UnreadableException;
import jade.lang.acl.MessageTemplate;

public class AgentService  extends Agent{
	private  Serializable Pubkey=null;
	 ACLMessage msg1Recu =null ;
	 
	
	protected void setup(){
	
		 try {
			 System.out.println(getLocalName()+" STARTED");
		// Création de desciprion de l'agent [Agent Service]
		DFAgentDescription dfd = new DFAgentDescription();
		dfd.setName(getAID());
		// Enregistrement de la description de l'agent dans DF (Directory Facilitator)
		DFService.register(this, dfd);
		System.out.println(getLocalName()+" REGISTERED WITH THE DF");
		} catch (FIPAException e) {
		e.printStackTrace();
		}
//-------------------------------------------------------------------------
	     SequentialBehaviour comportementSequentiel = new SequentialBehaviour();
	     comportementSequentiel.addSubBehaviour(new OneShotBehaviour(){
	    	 @Override
	    	 public void action() {
	    		 System.out.println(" AgentService:en Attente AgentLanceur  ");
	    		
	    		 while (msg1Recu == null){
	    		 msg1Recu= receive() ;
	    		}
	    		
	    		 try {
					Pubkey = msg1Recu.getContentObject();
				} catch (UnreadableException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
	    		
	    		try {
					System.out.println("message recu de Agent Lanceur et registre sous pubkey= "+msg1Recu.getContentObject() );
				} catch (UnreadableException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
	    		
	    		
				}
	    	 }); 
	     addBehaviour(comportementSequentiel);
//-------------------------------------------------------------------------------------------------------
	     addBehaviour(new CyclicBehaviour(this) {
				
				public void action() {
					
				// Attente de message (de l'agent vendeur)
				ACLMessage msg = receive(MessageTemplate.MatchPerformative(ACLMessage.INFORM));
				if (msg != null) {				
				if (msg.getContent().equalsIgnoreCase("public key"))
				{
																	
				  ACLMessage reply = msg.createReply();
				
				  try {
					reply.setContentObject(Pubkey);

					System.out.println(" Agent Service :message envoyé de Agent vendeur = "+reply.getContentObject());
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (UnreadableException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}}
				}
				else {
				
				//Pendant que le message n'est pas encore arrivé le comportement est bloqué
				block();
				}
				
				}});
	    
	
	}
}
Code :
1
2
3
4
5
6
7
8
 Voici le résultat de l’exécution :

Agent Service :message envoyé de Agent vendeur = Sun RSA public key, 1024 bits
 modulus: 946914094815337289427708036769470865191238874959665070564881607663398
5639580890451115200715835363632366787728350895602551973833114228733800233854409
6365223900556782564298135744458157751258741511568834385035748867042269210603072
167167235825268184993753606194774573749635355232379857103014508868280103243531
 public exponent: 65537
Mais @ Agent Vendeur
Code :
1
2
3
4
5
6
7
8
9
10
11
12
AgentVendeur STARTED
AgentMobile STARTED
AgentVendeur REGISTERED WITH THE DF
 Agent Vendeur en Attente  Agent Mobile
AgentMobile REGISTERED WITH THE DF
--- AgentMobile fait la migration ---
Agent Mobile vas  envoyÚ   message @ Agent Vendeur prix mobile Nokia
 Agent Vendeur :message recu de Agent Mobile = prix mobile Nokia
L'agent Vendeur  en attente l'Agent Service
L'agent Vendeur  vas interoger l'Agent Service pour  demandé la clÚ pub public k
ey
.....................!!!!!!!! normalment ici je trouve le resultat (m'affiche rien plus:( 
manare est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2011, 15h11   #163
Darkaz
Futur Membre du Club
 
Homme Matthieu
Étudiant
Inscription : août 2011
Messages : 16
Détails du profil
Informations personnelles :
Nom : Homme Matthieu
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Étudiant
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : août 2011
Messages : 16
Points : 17
Points : 17
Bonjour,

Je viens de lire rapidement le forum et j'ai vu qu'il y avait un agent lanceur d'agent. (J'aime le concept) Ca marche sans problème.

Par contre, je voulais savoir s'il y avait possibilité d'écrire un programme capable de lancer lui même des agents (et donc la gui) par exemple un main qui lancera les Agents A et B de l'exemple de l'article.

Je vais chercher de mon coté.

Bonne après midi.
Darkaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2011, 11h52   #164
Djug
Rédacteur
 
Avatar de Djug
 
Homme
Inscription : mai 2007
Messages : 3 180
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 26
Localisation : Algérie

Informations forums :
Inscription : mai 2007
Messages : 3 180
Points : 19 506
Points : 19 506
Citation:
Envoyé par Darkaz Voir le message
Bonjour,

Je viens de lire rapidement le forum et j'ai vu qu'il y avait un agent lanceur d'agent. (J'aime le concept) Ca marche sans problème.

Par contre, je voulais savoir s'il y avait possibilité d'écrire un programme capable de lancer lui même des agents (et donc la gui) par exemple un main qui lancera les Agents A et B de l'exemple de l'article.

Je vais chercher de mon coté.

Bonne après midi.
oui, c'est possible de le faire,

la méthode la plus simple c'est de lancer les agents par la ligne de commandes (via un code java)

la seconde (la plus orientée jade), permet de lancer des agents sans passer par la ligne de commande

tu trouvera un exemple dans la section 3.8 (Using JADE from external Java applications) du document:
http://jade.tilab.com/doc/programmersguide.pdf
__________________
Tweet more than 140 characters with long-tweets.com

Tutoriels JADE (Java Agent DEvelopment Framework)
http://djug.developpez.com

Je ne réponds pas aux questions techniques par Messages privés: les forums sont faits pour ça
Djug est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 26/08/2011, 13h25   #165
Darkaz
Futur Membre du Club
 
Homme Matthieu
Étudiant
Inscription : août 2011
Messages : 16
Détails du profil
Informations personnelles :
Nom : Homme Matthieu
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Étudiant
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : août 2011
Messages : 16
Points : 17
Points : 17
Citation:
Envoyé par Djug Voir le message
tu trouvera un exemple dans la section 3.8 (Using JADE from external Java applications) du document:
http://jade.tilab.com/doc/programmersguide.pdf
Merci beaucoup !

J'avais pourtant parcouru rapidement la doc. J'ai du manqué ce point (vu qu'il est à la fin de la doc c'est normal xD)
Darkaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2011, 19h10   #166
IMENCHAR
Invité de passage
 
char imen
Inscription : novembre 2010
Messages : 9
Détails du profil
Informations personnelles :
Nom : char imen

Informations forums :
Inscription : novembre 2010
Messages : 9
Points : 1
Points : 1
Par défaut Jade et protégé

Bonjour
Je suis débutante dans le domaine ontologie je veux construire une ontologie pour le domaine traçabilité. Puis grâce au Plugin beangenerator les classes d'ontologie seront généré pour être compiler sur JADE (Java Agent DEvelopment Framework). svp est ce qu'il ya un exemple d'ontologie pour mieux comprendre. Merci en avance.
IMENCHAR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2011, 00h51   #167
hamdi_iag
Invité de passage
 
Homme
Inscription : septembre 2011
Messages : 2
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Secteur : Enseignement

Informations forums :
Inscription : septembre 2011
Messages : 2
Points : 2
Points : 2
Par défaut Constructeur dans Jade

Est ce que on pourra mettre des constructeurs avec des agents jade.

Sinon comment faire pour créer des agents à partir d'un autre agent.
hamdi_iag est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2011, 11h30   #168
Darkaz
Futur Membre du Club
 
Homme Matthieu
Étudiant
Inscription : août 2011
Messages : 16
Détails du profil
Informations personnelles :
Nom : Homme Matthieu
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Étudiant
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : août 2011
Messages : 16
Points : 17
Points : 17
Citation:
Envoyé par hamdi_iag Voir le message
Est ce que on pourra mettre des constructeurs avec des agents jade.

Sinon comment faire pour créer des agents à partir d'un autre agent.
Je ne suis pas sur d'avoir bien compris la première partie de ta question.
Mais si c'est "comment lancer un agent depuis une applications java" :
je t'invite à lire le Programmer User Guide (page 47) disponible sur le site de JADE. Ce qui est écrit 3 posts au dessus !!!!

Créer un agent à partir d'un autre agent à déjà était traité dans ce topic, en première page !!!!!!!

Ainsi avant de poster une question, pense à relire le sujet !!!!
Darkaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2011, 14h13   #169
Darkaz
Futur Membre du Club
 
Homme Matthieu
Étudiant
Inscription : août 2011
Messages : 16
Détails du profil
Informations personnelles :
Nom : Homme Matthieu
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Étudiant
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : août 2011
Messages : 16
Points : 17
Points : 17
J'en avais oublié ma question :

lorsque l'on veut rajouter un service à la plat forme,
on le passe en paramètre lors de l'exécution en console.

mais comment doit on faire pour le rajouter lorsque l'on lance la plat forme depuis un programme java ?

Lancer la plat forme depuis un programme java : programers guide page 47
Liste des services : administrators guide page 6
Darkaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2011, 15h03   #170
Darkaz
Futur Membre du Club
 
Homme Matthieu
Étudiant
Inscription : août 2011
Messages : 16
Détails du profil
Informations personnelles :
Nom : Homme Matthieu
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Étudiant
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : août 2011
Messages : 16
Points : 17
Points : 17
auto réponse (ça devient une habitude) :

Code :
1
2
3
4
5
6
7
8
9
10
 
// allow to send arguments to the JADE launcher
Properties pp = new ExtendedProperties();
 
// add the Topic Management Service
pp.setProperty(Profile.SERVICES, "jade.core.messaging.TopicManagementService");
 
 
// create a default Profile
ProfileImpl pMain = new ProfileImpl(pp);
Darkaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2011, 22h09   #171
hamdi_iag
Invité de passage
 
Homme
Inscription : septembre 2011
Messages : 2
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Secteur : Enseignement

Informations forums :
Inscription : septembre 2011
Messages : 2
Points : 2
Points : 2
Est ce-qu'il y a un exemple plus précis (et complet) que celui du Programmer User Guide (page 48)
hamdi_iag est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2011, 13h12   #172
djanahana
Invité régulier
 
Inscription : mai 2009
Messages : 12
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 12
Points : 5
Points : 5
Par défaut demande d'aide avec mon code communication agent

Citation:
Envoyé par Djug Voir le message
Bonjour,

voici un article sur Les communications des agents JADE

http://djug.developpez.com/java/jade/communication/


vos remarques sont les bienvenues.


Bonjour.

Quelqu'un peut-il m'aider avec mon programme ? J'ai essayé plusieurs fois d'exécuter le code pour la communication avec jade et ça marche qu'une fois et après je ne peux pas l’exécuter. Ma demande est juste de me dire si mon code pour l'agentA et AgentB (qui envoient un message bonjour entre eux) est correct.

merci d'avoir lu mon message.

le code est le suivant pour agentA
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
import jade.core.AID;
import jade.core.Agent;
import jade.core.behaviours.FSMBehaviour;
import jade.core.behaviours.OneShotBehaviour;
import jade.lang.acl.ACLMessage;
 
public class AgentA extends Agent {
 
protected void setup(){
 
  System.out.println("---------------------------------------");
  System.out.println("----------------agent A----------------");
  System.out.println("---------------------------------------");
 
  FSMBehaviour agentA_beh= new FSMBehaviour();
 
  agentA_beh.registerFirstState(new attendreAgentB(), "attendreAgentB");
  agentA_beh.registerState(new bonjour(), "bonjour");
  agentA_beh.registerLastState(new fin(), "fin");
 
  agentA_beh.registerDefaultTransition("attendreAgentB", "bonjour");
  agentA_beh.registerTransition("bonjour", "attendreAgentB",0);
  agentA_beh.registerTransition("bonjour", "fin", 1);
 
  addBehaviour(agentA_beh);  
}
 
private class attendreAgentB extends OneShotBehaviour{
 
  @Override
  public void action() {
 
  System.out.println("en attente de l agent B");
  block();
  }
}
/*****************************************************************/
private class bonjour extends OneShotBehaviour{
 
  int valeurRetour = 0;
  @Override
  public void action() {
 
  ACLMessage messageRecu = receive();
  if (messageRecu.getContent().equalsIgnoreCase("pret") ) valeurRetour=0;
  else  valeurRetour=1;
 
 
  System.out.println(" bonjour agent A ");
  ACLMessage message = new ACLMessage(ACLMessage.INFORM);
  message.addReceiver(messageRecu.getSender());
 
  send(message);
  }      
 
  public int onEnd(){
  return valeurRetour;   
  }  
}
/*****************************************************************/
private class fin extends OneShotBehaviour{
 
  @Override
  public void action() {
  System.out.println("arret de l'agent");
  myAgent.doDelete();  
  }  
}
}

et pour AgentB
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
import java.security.acl.Acl;
import jade.core.AID;
import jade.core.Agent;
import jade.core.behaviours.FSMBehaviour;
import jade.core.behaviours.OneShotBehaviour;
import jade.lang.acl.ACLMessage;
 
public class AgentB extends Agent {
 
 
  boolean stop = false;
  protected void setup(){
    System.out.println("----------------agent B----------------");
    FSMBehaviour agentB_beh= new FSMBehaviour();
 
    agentB_beh.registerFirstState(new attendrebonjour(), "attendrebonjour");
    agentB_beh.registerState(new afficher(), "afficher");
    agentB_beh.registerState(new fin(), "fin");
 
    agentB_beh.registerTransition("attendrebonjour", "afficher",0);
    agentB_beh.registerTransition("attendrebonjour", "fin",1);
    agentB_beh.registerDefaultTransition("afficher", "attendrebonjour");
 
    addBehaviour(agentB_beh);
  }
  private class attendrebonjour extends OneShotBehaviour{
 
    int valeurRetour = 0;
 
    public void action() {
    ACLMessage message = new ACLMessage(ACLMessage.INFORM);
    message.addReceiver(new AID("AgentA", AID.ISLOCALNAME));  
 
      if(!stop){
        message.setContent("pret");
        send(message);
        valeurRetour=0;
        block();
      }else{
        message.setContent("arret");
        send(message);
        valeurRetour=1;  
      }    
    }
  public int onEnd(){
    return valeurRetour;
  }  
  }
  /**********************************************************************/
  private class afficher extends OneShotBehaviour{  
    @Override
    public void action() {
      ACLMessage messageRecu = receive();
      somme+= Integer.parseInt(messageRecu.getContent());
      System.out.println("message recu= "+ messageRecu.getContent());
      stop = true;
    }  
  }
  /**********************************************************************/
  private class fin extends OneShotBehaviour{
    @Override
    public void action() {
      System.out.println("fin de l'agent");
      myAgent.doDelete();
    }  
  }
}


merci encore une fois
djanahana est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/10/2011, 11h07   #173
Djug
Rédacteur
 
Avatar de Djug
 
Homme
Inscription : mai 2007
Messages : 3 180
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 26
Localisation : Algérie

Informations forums :
Inscription : mai 2007
Messages : 3 180
Points : 19 506
Points : 19 506
Citation:
ça marche qu'une fois et aprés je ne peux pas l’exécuter
tu n'arrives pas à l’exécuter une nouvelle fois, parce que tu ne fermes pas la plateforme après avoir terminer l’exécution.

Citation:
Envoyé par Djug Voir le message
cette erreur apparait quand tu essayes de lancer une nouvelle instance du jade (ou lancer le même programme/agent JADE une nouvelle fois) sans avoir fermer l'ancienne instance proprement.

fermer l'interface graphique du jade ne ferme pas la plateforme vu que l'interface graphique n'est qu'un agents comme les autre (l'agent RMA).

pour fermer le JADE complètement tu as le choix entre l'une des méthodes suivantes:
1. fermer la plateforme à partir de l'interface graphique:



2. fermer l'agent à partir d'eclipse:



3.mais si tu as déjà tenter de lancer la deuxième instance, il te faut redémarrer Eclipse ou fermer le processus javaw.exe , à partir du gestionnaire de tâches (sous windows), ou utiliser la commande systeme suivante (invite de commande):

Code :
taskkill /f /im javaw.exe
__________________
Tweet more than 140 characters with long-tweets.com

Tutoriels JADE (Java Agent DEvelopment Framework)
http://djug.developpez.com

Je ne réponds pas aux questions techniques par Messages privés: les forums sont faits pour ça
Djug est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 15/11/2011, 19h55   #174
Papillon de mer
Membre à l'essai
 
Femme
Etudiante
Inscription : novembre 2011
Messages : 86
Détails du profil
Informations personnelles :
Sexe : Femme

Informations professionnelles :
Activité : Etudiante

Informations forums :
Inscription : novembre 2011
Messages : 86
Points : 24
Points : 24
Bonjour à tous!

pour le lancement de deux agents j'applique tous ce que dit là, mais aucune chose les agents ne veulent pas lancer

hier j'ai testé de lancer les deux agents A et B et j'ai réussi et j'ai fait la suite:

1/ j'ai mis dans l'onglet Arguments de Run configuration de la classe de l'agent A : -gui " pour lancer le Jade seulement"

2/ et après j'ai lancé l'agent A par l'icon "start new agent", donc il m'affiche

Citation:
---------------------------------------
----------------agent A----------------
---------------------------------------
en attente de l agent B
3/ la meme chose pour l'agent B , il m'affiche le résultat qu'il faut m'apparait.



mais aujourd'hui , il m'affiche une erreur et je ne sais pas pourquoi

il m'affiche comme ça lorsque je crée l'agent B

Citation:
----------------agent B----------------
*** Uncaught Exception for agent b ***
java.lang.NumberFormatException: For input string: "( (action ( agent-identifier :name b@192.168.1.4:1099/JADE :addresses (sequence http://UTILISATEUR-PC:7778/acc )) (ACLMessage) ) (MTS-error ( agent-identifier :name AgentA@192.168.1.4:1099/JADE ) (internal-error "Agent not found: getContainerID() failed to find agent AgentA@192.168.1.4:1099/JADE")) )"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)ERROR: Agent b died without being properly terminated !!!
State was 2

at firstAgent.AgentB$afficher.action(AgentB.java:47)
at jade.core.behaviours.Behaviour.actionWrapper(Behaviour.java:344)
at jade.core.behaviours.CompositeBehaviour.action(CompositeBehaviour.java:109)
at jade.core.behaviours.Behaviour.actionWrapper(Behaviour.java:344)
at jade.core.Agent$ActiveLifeCycle.execute(Agent.java:1504)
at jade.core.Agent.run(Agent.java:1443)
at java.lang.Thread.run(Unknown Source)
une idée, svp????
Papillon de mer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2011, 09h31   #175
Djug
Rédacteur
 
Avatar de Djug
 
Homme
Inscription : mai 2007
Messages : 3 180
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 26
Localisation : Algérie

Informations forums :
Inscription : mai 2007
Messages : 3 180
Points : 19 506
Points : 19 506
le message d'erreur
Code :
gent not found: getContainerID() failed to find agent AgentA@192.168.1.4:1099/JADE
indique que le 2e agent n'a pas pu trouvé le premier Agent nommé AgentA.

il me semble que tu as nommé tes agents en a et b (au lieu de AgentA et AgentB) et du coup tu dois également remplacer AgentA par a et AgentB par a et b dans le code des 2 agents.
__________________
Tweet more than 140 characters with long-tweets.com

Tutoriels JADE (Java Agent DEvelopment Framework)
http://djug.developpez.com

Je ne réponds pas aux questions techniques par Messages privés: les forums sont faits pour ça
Djug est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2011, 17h06   #176
Papillon de mer
Membre à l'essai
 
Femme
Etudiante
Inscription : novembre 2011
Messages : 86
Détails du profil
Informations personnelles :
Sexe : Femme

Informations professionnelles :
Activité : Etudiante

Informations forums :
Inscription : novembre 2011
Messages : 86
Points : 24
Points : 24
Merci Mr.Djug pour votre réponse

vous voulez me dire qu'il faut nommer les agents: AgentA et AgentB comme leurs classes ??

si oui, j'avais cru que les noms des agents sont choisis aléatoirement
Papillon de mer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2011, 11h48   #177
Djug
Rédacteur
 
Avatar de Djug
 
Homme
Inscription : mai 2007
Messages : 3 180
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 26
Localisation : Algérie

Informations forums :
Inscription : mai 2007
Messages : 3 180
Points : 19 506
Points : 19 506
Citation:
Envoyé par Papillon de mer Voir le message
Merci Mr.Djug pour votre réponse

vous voulez me dire qu'il faut nommer les agents: AgentA et AgentB comme leurs classes ??

si oui, j'avais cru que les noms des agents sont choisis aléatoirement
tu peux nommer tes agents comme tu le veux.
mais le code de l'agentB indique qu'il veut communiqué avec un agent nommé AgentA.

Code :
    message.addReceiver(new AID("AgentA", AID.ISLOCALNAME));
__________________
Tweet more than 140 characters with long-tweets.com

Tutoriels JADE (Java Agent DEvelopment Framework)
http://djug.developpez.com

Je ne réponds pas aux questions techniques par Messages privés: les forums sont faits pour ça
Djug est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2011, 16h28   #178
Papillon de mer
Membre à l'essai
 
Femme
Etudiante
Inscription : novembre 2011
Messages : 86
Détails du profil
Informations personnelles :
Sexe : Femme

Informations professionnelles :
Activité : Etudiante

Informations forums :
Inscription : novembre 2011
Messages : 86
Points : 24
Points : 24
Désolée pour le retard

Ok , Merci autre fois Mr.Djug
Papillon de mer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2011, 21h04   #179
Papillon de mer
Membre à l'essai
 
Femme
Etudiante
Inscription : novembre 2011
Messages : 86
Détails du profil
Informations personnelles :
Sexe : Femme

Informations professionnelles :
Activité : Etudiante

Informations forums :
Inscription : novembre 2011
Messages : 86
Points : 24
Points : 24
Salut tous le monde!

je reviens avec des autres questions

comme j'avais dit dans les passés discussions, que je lance le JADE à partir l'eclipse par l'écriture -gui dans l'argument de Run Configuration et ça marche bien

et aussi j'ai créé les agent A et B l'un après l'autre par l'icon "Start new agent" puis choisis les classes correspondantes et aussi marche bien

et le résultat s'affiche comme suit dans le console d'Eclipse jusqu'à l'arret de l'agent

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
INFO: --------------------------------------
Agent container Main-Container@192.168.1.2 is ready.
--------------------------------------------
---------------------------------------
----------------agent A----------------
---------------------------------------
en attente de l agent B
----------------agent B----------------
envoi de la valeur 0
en attente de l agent B
message recu= 0
la somme actuelle = 0
envoi de la valeur 5
en attente de l agent B
message recu= 5
la somme actuelle = 5
envoi de la valeur 9
en attente de l agent B
message recu= 9
la somme actuelle = 14
envoi de la valeur 6
en attente de l agent B
message recu= 6
la somme actuelle = 20
envoi de la valeur 2
en attente de l agent B
message recu= 2
la somme actuelle = 22
envoi de la valeur 4
en attente de l agent B
message recu= 4
la somme actuelle = 26
envoi de la valeur 8
en attente de l agent B
message recu= 8
la somme actuelle = 34
envoi de la valeur 3
en attente de l agent B
message recu= 3
la somme actuelle = 37
envoi de la valeur 5
en attente de l agent B
message recu= 5
la somme actuelle = 42
envoi de la valeur 8
en attente de l agent B
message recu= 8
la somme actuelle = 50
envoi de la valeur 0
en attente de l agent B
message recu= 0
la somme actuelle = 50
envoi de la valeur 2
en attente de l agent B
message recu= 2
la somme actuelle = 52
fin de l'agent
envoi de la valeur 6
arret de l'agent
mais mon souci est dans le sniffer, pour vérifier est ce que les messages sont bien échangés ou non entre les deux agents

je crois qu'il y a un problème ..il n'y a pas des messages envoyés
Papillon de mer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2011, 10h29   #180
Djug
Rédacteur
 
Avatar de Djug
 
Homme
Inscription : mai 2007
Messages : 3 180
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 26
Localisation : Algérie

Informations forums :
Inscription : mai 2007
Messages : 3 180
Points : 19 506
Points : 19 506
Citation:
il n'y a pas des messages envoyés
et comment les agents arrivent ils à communiquer?


et voici comment "espionner" les agents Jade avec l'agent Sniffer:


http://www.4shared.com/file/fZ_dtocJ/Sniffer.html
__________________
Tweet more than 140 characters with long-tweets.com

Tutoriels JADE (Java Agent DEvelopment Framework)
http://djug.developpez.com

Je ne réponds pas aux questions techniques par Messages privés: les forums sont faits pour ça
Djug est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Actualité déjà publiée
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 01h32.


 
 
 
 
Partenaires

Hébergement Web