-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathImplClient.java
160 lines (147 loc) · 5.47 KB
/
ImplClient.java
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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
/**
* ImplClient.java
*
* Created on 9 vril 2007
*
* @author BRUN Joel & DEBONNEL Yann
*/
import java.net.InetAddress;
import java.net.MalformedURLException;
import java.net.UnknownHostException;
import java.rmi.Naming;
import java.rmi.NotBoundException;
import java.rmi.RMISecurityManager;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
import java.util.Date;
import java.util.Vector;
public class ImplClient extends UnicastRemoteObject implements InterfaceClient {
private String nom;
private String monIp;
private String IP_EBAY;
private String IP_PAYPAL;
private ClientConnect cc;
private Article curArticle;
private InterfacePolyEbay remotePolyEbay;
private InterfacePolyPaypal remotePolypaypal;
private Date delaiReseau;
private float credit;
private int port = 0;
private int curArtIndex=-1;
public ImplClient(String n, int p) throws RemoteException{
super();
monIp ="";
nom = n;
port = p;
try {
monIp = InetAddress.getLocalHost().getHostAddress();
monIp+=":"+port;
credit =0;
} catch (UnknownHostException ex) {
ex.printStackTrace();
}
}
public String getLogin(){return nom;}
public float getCredit(){return credit;}
public String getTimeServeur(){return cc.getTimeServeur(curArtIndex);}
public void setLogin(String s){ nom = s ;}
public void setPort(int p){ port = p;}
public void setcurArticle(int i){
if(curArtIndex==-1 && i!=-1) {
curArticle = cc.getArticle(i);
curArtIndex = i;
}
else return;
try {
remotePolyEbay.addClientArticle(monIp, curArticle.getNom());
} catch (RemoteException ex) {
ex.printStackTrace();
System.err.println("probleme lors du choix de l'article a miser : "+curArticle.getNom());
}
}
public Article getcurArticle(){ return curArticle;}
public Vector<Article> getListArticle(){return cc.getArticles();}
public void faireMise(double montant){
try {
remotePolyEbay.miserArticle(monIp, curArticle.getNom(), (float)montant);
} catch (RemoteException ex) {
ex.printStackTrace();
System.err.println("impossible de faire la mise de "+montant);
}
}
public void UpdateClient(Article art) throws RemoteException{
curArticle = art; System.out.println("mise a jour recu");
cc.UpdateArticle(curArtIndex, art);
credit = remotePolypaypal.checkCredit(nom);
}
// Cette fonction permet la connexion au gestionnaire de fichier dont l'adresse IP est
// spécifié en paramêtre.
public boolean connexionEbay(String ipEbay, String ipPaypal) {
IP_EBAY = ipEbay;
IP_PAYPAL = ipPaypal;
demarrerServeurPerso();
try{
remotePolypaypal = (InterfacePolyPaypal)Naming.lookup("//" + IP_PAYPAL + ":5000/POLYPAYPAL");
credit = remotePolypaypal.connect(nom);
if(credit>0){
remotePolyEbay = (InterfacePolyEbay)Naming.lookup("//" + IP_EBAY + ":4500/POLYEBAY");
cc = remotePolyEbay.connectClient(nom,monIp);
return cc.isConnected();
} else return false;
} catch(Exception e) {
e.printStackTrace();
return false;
}
}
// Cette fonction permet la déconnexion au gestionnaire de fichier auquel l'utilisateur està
// présentement connecté.
public boolean deconnexionEbay() {
try{
remotePolyEbay.disconnectClient(nom,monIp);
return true;
} catch(Exception e) {
e.printStackTrace();
return false;
}
}
// Cette fonction arrête le serveur personnel de l'utilisateur
public void arreterServeurPerso(){
try {
Naming.unbind("rmi://" + monIp + "/" + nom);
} catch (MalformedURLException ex) {
ex.printStackTrace();
} catch (RemoteException ex) {
ex.printStackTrace();
} catch (NotBoundException ex) {
ex.printStackTrace();
}
}
// Cette fonction démarre le serveur personnel de l'utilisateur.
public void demarrerServeurPerso() {
try{
java.rmi.registry.LocateRegistry.createRegistry(port);
System.out.println("Registre cree sur le port :: "+port);
} catch(Exception e) {
//e.printStackTrace();
}
try {
java.rmi.registry.Registry reg = java.rmi.registry.LocateRegistry.getRegistry(port);
System.out.println("Registre du port "+port+" utilise .");
} catch (Exception e) {
e.printStackTrace();
}
// Créer et installer le gestionnaire de sécurité.
if (System.getSecurityManager() == null) {
System.setSecurityManager(new RMISecurityManager());
}
try {
Naming.rebind("rmi://" + monIp + "/" + nom, this);
} catch (RemoteException e1) {
e1.printStackTrace();
System.out.println("Probleme d'initialisation du serveur.");
} catch (MalformedURLException e) {
e.printStackTrace();
System.out.println("Probleme d'initialisation du serveur.");
}
}
}