Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 24th, 2012  |  syntax: None  |  size: 2.64 KB  |  hits: 20  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. package tutorial.android;
  2.  
  3. import java.net.InetSocketAddress;
  4. import java.net.Socket;
  5. import java.net.SocketAddress;
  6. import java.io.DataOutputStream;
  7. import java.io.DataInputStream;
  8. import android.util.Log;
  9.  
  10.  
  11. public class Conexion {
  12.         private static Conexion instance;
  13.         private SocketAddress direccion;
  14.         private Socket socket;
  15.         private DataOutputStream salida;
  16.     public DataInputStream entrada;
  17.     public boolean estoy_conectado = false;
  18.    
  19.     public static Conexion getInstance() {
  20.         // La clase Conexion funciona como un Singleton
  21.        
  22.         if(instance == null) {
  23.                 instance = new Conexion();
  24.         }
  25.        
  26.         return instance;
  27.     }
  28.  
  29.     public boolean conectar(String ip, int puerto) {
  30.         // Esta función se encarga de conectarse con el servidor
  31.         // si logro conectarme seteo la variable estoy_conectado a true
  32.         // sino en false
  33.         // Seteo un timeout de conexión en 30 segundos
  34.        
  35.         try {
  36.                 direccion = new InetSocketAddress(ip, puerto);
  37.                         socket = new Socket();
  38.                         socket.connect(direccion, 30000);
  39.                        
  40.                         salida = new DataOutputStream(socket.getOutputStream());
  41.                         entrada = new DataInputStream(socket.getInputStream());
  42.                        
  43.                         estoy_conectado = true;
  44.                        
  45.                         return true;
  46.         } catch(Exception e) {
  47.                 estoy_conectado = false;
  48.                 Log.v("CONECTAR", "error al conectar");
  49.                
  50.                 return false;
  51.         }
  52.     }
  53.    
  54.     public boolean enviar(String mensaje) {
  55.         // Esta función se encarga de enviar un mensaje al servidor
  56.        
  57.                 try {
  58.                         mensaje = mensaje + "\r\n";
  59.                         salida.writeBytes(mensaje);
  60.                         salida.flush();
  61.                        
  62.                         return true;
  63.                 } catch(Exception e) {
  64.                         estoy_conectado = false;
  65.                         Log.v("ENVIAR", "Error al enviar un mensaje al servidor");
  66.                        
  67.                         return false;
  68.                 }
  69.     }
  70.    
  71.     public String recibir() {
  72.         // Esta función se encarga de recibir los mensajes que envía el servidor
  73.        
  74.         String mensaje = "";
  75.        
  76.         try {
  77.                 int c = 0;
  78.                 StringBuffer sb = new StringBuffer();
  79.                
  80.             while(((c = entrada.read()) != '\n' && (c != -1))) {
  81.                 sb.append((char)c);
  82.             }
  83.            
  84.             mensaje = sb.toString();
  85.                 } catch(Exception e) {
  86.                         estoy_conectado = false;
  87.                         Log.v("RECIBIR", "error al recibir un mensaje");
  88.                 }
  89.                
  90.                 return mensaje;
  91.     }
  92.    
  93.         public void desconectar() {
  94.                 // Esta función se encarga de cerrar la conexión
  95.                
  96.                 try {
  97.                         entrada.close();
  98.                         salida.close();
  99.                         socket.close();
  100.                         estoy_conectado = false;
  101.                 } catch(Exception e) {
  102.                         estoy_conectado = false;
  103.                         Log.v("DESCONECTAR", "error al desconectar");
  104.         }
  105.         }
  106.        
  107. }