View Javadoc

1   package uba.db.client.model;
2   
3   import java.io.*;
4   import java.net.*;
5   
6   /***
7    * Estado de conexión al servidor.
8    * 
9    * @version $Revision 1.0$
10   */
11  public class ConnectionToServer {
12  
13  	Socket kkSocket = null;
14  
15  	PrintWriter out = null;
16  
17  	BufferedReader in = null;
18  
19  	ClientManager manager;
20  
21  	/***
22  	 * Inicia la conexión.
23  	 * 
24  	 * @param m
25  	 *            Manager del que se reciben las órdenes.
26  	 * @throws IOException
27  	 *             Error de socket.
28  	 */
29  	public void connect(ClientManager m) throws IOException {
30  
31  		try {
32  			kkSocket = new Socket("localhost", 4444);
33  			out = new PrintWriter(kkSocket.getOutputStream(), true);
34  			in = new BufferedReader(new InputStreamReader(kkSocket
35  					.getInputStream()));
36  			manager = m;
37  			// out.println("Init");
38  			in.readLine();
39  		} catch (UnknownHostException e) {
40  			System.err.println("Don't know about host: Hardcoded workstation.");
41  			System.exit(1);
42  		} catch (IOException e) {
43  			System.err
44  					.println("Couldn't get I/O for the connection to: Hardcoded workstation.");
45  			System.exit(1);
46  		}
47  	}
48  
49  	/***
50  	 * Deja en el socket el string y obtiene un string resultante.
51  	 * 
52  	 * @param s
53  	 *            El string a mandar con la sentencia.
54  	 * @return El resultado de tomar del socket lo que envía el server.
55  	 * @throws IOException
56  	 *             Error de socket.
57  	 */
58  	public String execute(String s) throws IOException {
59  		String fromServer;
60  		String fromUser;
61  		fromUser = s;
62  		if (fromUser != null) {
63  			System.out.println("Client: " + fromUser);
64  			out.println(fromUser);
65  		}
66  		fromServer = in.readLine();
67  		System.out.println("Server: " + fromServer);
68  
69  		if (fromServer.equals("Connection Closed")) {
70  			manager.close();
71  			close();
72  			return null;
73  		}
74  
75  		return fromServer;
76  
77  	}
78  
79  	/***
80  	 * Cierra el socket.
81  	 * 
82  	 * @throws IOException
83  	 *             Error de socket.
84  	 */
85  	void close() throws IOException {
86  		out.close();
87  		in.close();
88  		kkSocket.close();
89  		System.exit(0);
90  	}
91  }