TD2: Make the client send and receive object message.
[TD_SR.git] / TD2 / client / ClientSimplifie.java
CommitLineData
f734b987
JB
1import java.io.*;
2import java.net.*;
3import java.util.*;
4
5public class ClientSimplifie {
6 BufferedReader lecture; // pour le flot d'entrée venant du serveur
7 PrintWriter ecriture; // pour le flot de sortie vers le serveur
8 Socket sock; // le socket client
9
10 public ClientSimplifie() {
11 // établie une connexion au serveur par un appel
12 // à connexionServeur()
e018d1ec
JB
13 attributesInit();
14 try {
15 connexionServeur("localhost", 5000);
16 }
17 catch (IOException e) {
18 System.err.println("IOException: " + e);
19 closeRWIO();
20 }
f734b987
JB
21 }
22
23 public ClientSimplifie(String adresseIPServeur, int portServeur) {
24 // établie une connexion au serveur par un appel
25 // à connexionServeur()
e018d1ec 26 attributesInit();
f734b987 27 try {
e018d1ec 28 connexionServeur(adresseIPServeur, portServeur);
f734b987 29 }
7293fe6d 30 catch (IOException e) {
ce28a021 31 System.err.println("IOException: " + e);
e018d1ec 32 closeRWIO();
7293fe6d 33 }
e018d1ec
JB
34 }
35
36 private void connexionServeur(String adresseIPServeur, int portServeur) throws IOException {
37 // créer un objet socket lié au socket serveur et l'affecte à sock
38 // puis établie les chaînages de flot nécessaires
39 // pour l'envoi et la reception de messages
40 sock = new Socket(adresseIPServeur, portServeur);
f734b987 41 InputStream IStream = null;
e018d1ec 42 IStream = sock.getInputStream();
f734b987
JB
43 InputStreamReader IMesg = new InputStreamReader(IStream);
44 lecture = new BufferedReader(IMesg);
45
46 OutputStream OStream = null;
e018d1ec 47 OStream = sock.getOutputStream();
f734b987
JB
48 ecriture = new PrintWriter(OStream);
49 }
50
e018d1ec 51 private void attributesInit() {
c4aaaeca 52 sock = null;
e018d1ec
JB
53 lecture = null;
54 ecriture = null;
e018d1ec
JB
55 }
56
7293fe6d
JB
57 /**
58 * Send a message on the opened client socket
59 * @param msg a string containing the message to send
60 */
f734b987 61 public void sendMsg(String msg) {
4ab67210 62 ecriture.println(msg);
f734b987
JB
63 ecriture.flush();
64 }
65
7293fe6d
JB
66 /**
67 * Receive a message sent on the opened client socket
68 * @return a string containing the received message
69 */
e018d1ec 70 public String receiveMsg() throws IOException {
f734b987 71 String line = new String();
ef258436 72 //FIXME?: read only the line before the ending newline
e018d1ec 73 line = lecture.readLine();
f734b987
JB
74 return line;
75 }
76
7293fe6d
JB
77 /**
78 * Close all opened I/O streams attached to this object instance
79 */
f734b987 80 public void closeRWIO() {
367e2930 81 try {
e018d1ec
JB
82 if (sock != null)
83 sock.close();
84 if (lecture != null)
85 lecture.close();
86 if (ecriture != null)
87 ecriture.close();
367e2930 88 }
7293fe6d 89 catch (IOException e) {
ce28a021 90 System.err.println("IOException: " + e);
7293fe6d 91 }
f734b987
JB
92 }
93
94} // fin classe ClientSimplifie