Practica Conectividad Sockets, Web Services.pdf

Please download to get full document.

View again

All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
 201
 
  Programacion Movil ( Android ) 2015 CONECTIVIDAD: SOCKETS: Antes de definir lo que es un socket es necesario definir la arquitectura con la que trabajan dichos Sockets, dicha arquitectura la conocemos como Arquitectura CLIENTE-SERVIDOR. ARQUITECTURA CLIENTE-SERVIDOR Esta arquitectura se caracteriza por descomponer el trabajo en dos partes (es decir dos programas), el servidor que centraliza el servicio y el cliente que controla la interacción con el usuario, es en este punto donde el servidor
Related documents
Share
Transcript
  Programacion Movil ( Android ) 2015   Isc. Rubén Torres Frías (isctorres@gmail.com) CONECTIVIDAD: SOCKETS: Antes de definir lo que es un socket es necesario definir la arquitectura con la que trabajan dichos Sockets, dicha arquitectura la conocemos como Arquitectura CLIENTE-SERVIDOR . ARQUITECTURA CLIENTE-SERVIDOR Esta arquitectura se caracteriza por descomponer el trabajo en dos partes (es decir dos programas), el servidor que centraliza el servicio y el cliente que controla la interacción con el usuario, es en este punto donde el servidor ofrece el servicio a través de una dirección conocida, dentro de una red local o global como lo es internet, en este último caso la dirección conocida seria el nombre del dominio. Algunos ejemplos de aplicaciones basadas en arquitecturas cliente-servidor, serian:    El chat de Facebook    El correo electrónico    La solicitud de una página en internet como el buscador de Google METODOLOGIA DE TRABAJO 1.- Conectado a la espera de un cliente2.- Recibe la solicitud generada por el Cte3.- Se establece la conexion4.- Responde la solicitud5.- Cierra la conexion6.- Cierra la conexion1.- Se conecta al sevidor2.- Solicita informacion al servidor3.- Recibe la respuesta 4.- Cierra la conexion   QUE ES UN SOCKET: En el desarrollo de aplicaciones, muchas veces nos vamos a ver en la necesidad de intercambiar información entre las aplicaciones que hacemos, para poder llevar a cabo esto haremos uso de esta herramienta de desarrollo. Un Socket(enchufe) es un mecanismo de comunicación entre programas a través de una red TCP/IP, dado que en un mismo dispositivo podemos estar ejecutando de forma simultanea diferentes aplicaciones, es necesario poder identificar cada socket residente en el dispositivo con una identificar único. Para lograr esto cada socket tendrá una dirección IP que es la dirección del dispositivo en la red donde trabaja, más un puerto. Algunos puertos conocidos son 80/8080 para el protocolo de internet HTTP.  Programacion Movil ( Android ) 2015   Isc. Rubén Torres Frías (isctorres@gmail.com) SOCKETS STREAM (TCP): Este tipo de sockets ofrecen un servicio orientado a conexión, donde los datos se transfieren como un flujo continuo, sin empaquetarlos en registro o bloques, este tipo de sockets están basados en el protocolo TCP, precisamente es un protocolo orientado a conexión. ¿A qué se refiere con orientado a conexión?; Significa que para poder intercambiar datos es necesario primero establecer una conexión entre los dos sockets. Dicho protocolo incorpora la revisión de errores, ya que en caso de que se detecte que la información no llego correctamente a su destino, esta volverá a ser retransmitida, además no se limita el tamaño máximo de información a enviar. EJERCICIO   Para probar el uso de los sockets implementemos una aplicación Servidor(Netbeans) y una aplicación cliente(Eclipse) donde se cumpla con los siguientes requerimientos: Servidor Netbeans:    Deberá aceptar y mostrar mensajes en consola de cualquier número de clientes Android. Cliente Android:    Implemente una interfaz de usuario similar a la que se muestra en la imagen La interfaz presentara un ScrollView para poder visualizar los mensajes que sobre pasen la pantalla.  <EditText android:id= @+id/edtmsj  android:layout_width= fill_parent  android:layout_height= wrap_content  android:hint= Introduce el mensaje /> <Button android:id= @+id/btnenviar  android:layout_width= fill_parent  android:layout_height= wrap_content  android:text= Enviar Mensaje  /> <ScrollView android:layout_width= match_parent  android:layout_height= wrap_content > <TextView android:id= @+id/txtmsjs  android:layout_width= fill_parent  android:layout_height= wrap_content  /> </ScrollView>   Programacion Movil ( Android ) 2015   Isc. Rubén Torres Frías (isctorres@gmail.com) SERVIDOR EN NETBEANS En el siguiente código implementaremos un servidor al que se podrá conectar nuestra aplicación (cliente) desarrollada en Android, para lo cual deberá crear una nueva aplicación en NetBeans o Eclipse con el siguiente codigo. package server_socket; import java.net.*; import java.io.*; public class Server_Socket { public static void main(String[] args) { Socket cliente; // Declaramos el socket del cliente int noCte = 0; ServerSocket servidor; // Declaramos el socket del servidor try { servidor = new ServerSocket(5000); // Instanciamos el socket del do // servidor estableciendo el puerto donde se { // hara la conexion y las solicitudes noCte++; cliente = servidor.accept(); // Cuando llega un socket cte System.out.println( Llega el cliente: +noCte); BufferedReader entrada = new BufferedReader( new InputStreamReader(cliente.getInputStream())); // Imprimimos en consola el mensaje System.out.println( entrada.readLine() ); // Definimos el flujo escritura con el cliente instanciado PrintStream ps = new PrintStream(cliente.getOutputStream()); // Mandamos un mensaje al cliente en el flujo de datos ps.println( Usted es mi cliente +noCte); cliente.close(); }while(true); // El servidor se mantendra disponible } catch( Exception e ) // Manejamos las excepciones que se generen { e.printStackTrace(); // Imprimimos la pila de llamadas } } }    Programacion Movil ( Android ) 2015   Isc. Rubén Torres Frías (isctorres@gmail.com) CLIENTE EN ANDROID En el siguiente código implementaremos nuestro cliente en Android  el cual se conectara a nuestro servidor elaborado anteriormente. public   static   class  PlaceholderFragment extends  Fragment implements  OnClickListener{ EditText edtmsj; Button btnenviar; TextView txtmsjs; public  PlaceholderFragment() {} @Override  public  View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.  fragment_socket , container, false ); edtmsj = (EditText) rootView.findViewById(R.id. edtmsj ); btnenviar = (Button) rootView.findViewById(R.id. btnenviar ); btnenviar.setOnClickListener( this ); txtmsjs = (TextView) rootView.findViewById(R.id. txtmsjs ); return  rootView; } @Override  public   void  onClick(View arg0) { // TODO  Auto-generated method stub  new  Conexion().enviar(); } class  Conexion { Socket socketCTE; public   void  enviar() { String ip = 192.168.43.105 ; int  puerto = 5000; try  { socketCTE = new  Socket(ip,puerto); PrintWriter salida = new  PrintWriter( new  OutputStreamWriter(socketCTE.getOutputStream()), true ); log( Yo Digo: ); log(edtmsj.getText().toString()); salida.println(edtmsj.getText().toString()); BufferedReader entrada = new  BufferedReader( new  InputStreamReader(socketCTE.getInputStream())); log( Servidor Dice: ); log(entrada.readLine()); socketCTE.close(); }
Related Search
We Need Your Support
Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

Thanks to everyone for your continued support.

No, Thanks
SAVE OUR EARTH

We need your sign to support Project to invent "SMART AND CONTROLLABLE REFLECTIVE BALLOONS" to cover the Sun and Save Our Earth.

More details...

Sign Now!

We are very appreciated for your Prompt Action!

x