Sockets en Android

imagenposts   Hola lectores el dia de hoy veremos como utilizar sockets en Android, como crearlos, enviar y recibir datos. Antes de empezar es necesario saber lo que es un socket pueden leer el sig. articulo. Básicamente lo que haremos hoy es una aplicacion ‘cliente’  para android que se conectara mediante un socket usando el protocolo TCP a una aplicaciòn ‘servidor’ escrita en JAVA J2SE, esta app nos permitira enviar datos al servidor y desde este le podremos dar un uso a estos. A continuación podrán ver como es el diagrama en una Comunicacion entre un cliente y un servidor.   Como veran primero se establece la coneccion, luego  el servidor  espera a que los clientes se conecten, una vez ya conectados uno hace una peticion y obtiene una respuesta hasta hacen esto hasta que la coneccion se corta. Nosotros trataremos de hacer lo mismo. En nuestro caso la app cliente estara en un dispositivo con android que se conectara mediante Wi-Fi a un router en el cual tambien esta conectada la  computadora que correra la aplicacion servidor al estar hecho en java podra correr en cualquier sistema operativo.   En android el manejo de sockets por lo menos con  TCP es igual que en java, aclaro que no soy un experto en este tema  me he basado en vario tutoriales que encontraran al final. Cuando trabajamos con sockets podemos usar el tipo  Socket en el cliente y en el servidor uno o más objetos Socket asociados a un ServerSocket. La E/S se realiza a través de objetos InputStream y OutputStream asociados a los Sockets. Lado  Servidor:En el servidor debemos hacer lo sig.

  • Crear el socket servidor
  • Aceptar un cliente
  • Obtener los InputStream y/o OutputStream del cliente.
  • Crear unos InputStream y/o OutputStream más adecuados a nuestras necesidades.
  • Leer y escribir datos del y al cliente.
  • Cerrar el socket.

En el servidor se crea un serversocket que tiene como parametro el numero de puerto este puede ser del 1 a 65535  del 1 a 1023 están reservados para servicios del sistema (SSH,SMTP, ftp, mail, www, telnet, etc…) Del 1024 en adelante podemos usarlos a nuestro gusto. Crear el socket servidor: El servidor crea un socket servidor que tiene como parámetro el puerto en el que a va estar escuchando las peticiones entrantes en mi caso he usado el 5555: ServerSocket skServidor = new ServerSocket(5555); Cada servidor debe usar un puerto diferente. Aceptar un cliente: Una vez creado el servidor, este espera conexiones de los cliente para eso llamamos al método accept(). Este método se queda bloqueado hasta que algún cliente se conecta. Nos devuelve un Socket, que es la conexión con dicho cliente. Socket skCliente = skServidor.accept();Un servidor puede manejar multiples conexion con cliente pero en este caso solamente manejara una.

Obtener el InputStream y/o OutputStream

Una vez que el cliente ya esta conectado, debemos  obtener de él el OuputStream o InputStream con los métodosgetOutputStream() o getInputStream(). La clase OutpuStream nos sirve para enviar datos.  InputStream nos sirve para leer los datos recibidos. InputStream input = skCliente.getIntputStream(); OutputStream output = skCliente.getOutputStream(); Estos metodos únicamente envían bytes. Si vamos a utilizar tipos de datos normales (enteros, String) podemos utilizar las clases DataInputStream y DataOutputStream. Estas clases tienen un constructor que admite unInputStream y un OutputStream respectivamente. DataInputStream inputdata = new DataInputStream (input); DataOuputStream outputdata = new DataOutputStream (output); Estas clases tienen sus propios metodos para escribir o leer. como writeInt(),writeFloat()readInt(), etc. Para strings usaremos los métodos writeUTF() y readUTF(), que envían/leen las cadenas en formato UTF.

Tambien podemos enviar y recibir objetos, en nuestra aplicacion crearemos nuestro objeto Mensaje_data
Para poder leer o escribir deberemos usar los metodos  readObject() y writeObject() de ObjectInputStream y ObjectOutputStream.
Para poder usar estos métodos las clases que enviemos deben implementar la interface Serializable.

Lado Cliente: Para poder crear el socket usamos la clase ‘Socket’ ademas deberemos usar la Direccion IP del server y el puerto que empleara para la comunicacion Socket skCliente = new Socket (IP,PUERTO); IP debe ser u String y PUERTO un entero. Podemos ver todo esto en el sig. diagrama.

 Veremos mas de esto en el codigo de la aplicacion.
De momento nuestra app solamente enviara mensajes al servidor osea que la comunicacion sera en un solo sentido veremos como hacerla
‘bidireccional en otro turial’
Una vez ya visto la parte teorica manos a la obra.
La app de android se vera asi le di un diseño parecido al tablero de una maquinaria para que sea mas agradable y divertido.
Captura de la app

Tendrá unos campos al comienzo en donde deberemos ingresar la direccion ip del server y el puerto,unos leds que cambiaran de color segun el estado de la conexion y un texto en el medio que informara cuando halla un error, luego mas abajo hay un campo en el que le podemos enviar un texto al servidor y luego de bajo cuatro botones de acción a los cuales desde el servidor podremos asignarle que cada vez que se los pulse realizar en el server una accion diferente como ejecutar un script, abrir una aplicacion etc, con esto podriamos usar nuestro movil como un control remoto para la pc. Veremos primero el codigo de la aplicacion servidor. He utilizado Eclipse para escribir el codigo en el repositorio encontraran el codigo. El proyecto del servidor se llama SimpleServer-Socket He  creado una clase que se llama Mensaje_data por lo que los ‘mensajes’ que se enviaran seran de este tipo, esta clase estara presente en las 2 aplicaciones   Mensaje_data  Este tiene los siguiente atributos.

  • Action :

llamare  mensaje de accion al mensaje que debe  tener en este atributo un valor difernte al -1 y estar comprendido entre 1 y 4. Cada valor tendra una accion especifica diferente, estos se definira mas abajo. last_msg debe ser false

  • Texto:

Llamare mensaje de texto al mensaje que tenga de valor action -1 y en texto debera tener lo que se desea enviar al server. last_msg debe ser false.

  • Ultimo mensaje:

Sera el mensaje que se envira para avisarle al servidor que debe cortar la conexion, se enviara al presionar desconectar. action=-1 texto=” ” last_msg=true Server.java server1 Algunas aclaraciones, En el metodo Exec  podremos hacer varias cosas ejucar un script abrir un pdf, un HTML, recomiendo visitar los siguientes link1 , link2  para mayor comprension. En este caso al presionar el boton de accion 1 abrira VLC,  en el numero 2 Chrome y en el 3 una terminal esto lo he hecho usando linux, en este punto dependera del sistema operativo que esten utilizando, si no ponemos el path del ejecutable, el directorio en el que se encuentra debe estar en la variable de entorno PATH, si no, no sabrá dónde econtrar el ejecutable.   Ahora es el turno de la aplicacion para android, recomiendo leer el comentario en cada caso: Proyecto: proyecto eclipse Al  AndroidManifest.xml y al layout en  layout/main no los voy a mostrar pueden verlos directamente desde el repositorio. Sockettest.java Explicare el funcionamiento paso a paso comentando en cada lineas. codigo droidcodigo droid2 Como habran  visto el funcionamiento es muy simple y no hay nada de mayor complejidad. para poder ejecutar el codigo java sin utilizar el eclipse deberan ejecutar desde su interprete de comandos segun el os que usen javac server.java y luego java server despues deberian ejecutar la app de android. Pueden ver un video sobre el funcionamiento de la aplicacion: Pueden descargar el codigo de este tutorial desde nuestro repositorio haciendo click en la imagen debajo. El proyecto de la aplicacion servidor se llama “SimpleServer-Socket” La aplicacion cliente “Socket-Client

Github

Con estos nuevos conocimiento se pueden hacer todo tipo de aplicaciones de diversos uso, hasta incluso si tienen conocimientos en electronica podria llegar a servirles para manipular circuitos desde su  telefono o hasta quien sabe incluso manejar un robot. En proximos tutoriales incluiremos una comunicacion bidireccional por lo que implementaremos en la app de android threads para manejar estos. Respecto de sockets en Java hay mucha informacion en internet, para armar este tutorial he utilizado los siguiente recursos, recomiendo que les hechen un  vistazo que son muy utiles: http://codigoprogramacion.com/java/103-sockets-en-java-con-cliente-y-servidor.html http://docs.oracle.com/javase/tutorial/networking/sockets/index.html http://casidiablo.net/java-socket-chat-basico/ http://www.chuidiang.com/java/sockets/socket.php http://mundogeek.net/archivos/2006/03/20/sockets-en-java/ http://www.helloandroid.com/tutorials/simple-connection-example-part-ii-tcp-communication http://docs.oracle.com/javase/tutorial/networking/sockets/readingWriting.html http://android-er.blogspot.com.ar/2011/01/simple-communication-using.html http://android-er.blogspot.com.ar/2011/01/implement-simple-socket-server-in.html http://adblogcat.com/ssl-sockets-android-and-server-using-a-certificate/Si alguno tiene experiencia en este tema y considera que en el tutorila hay algo incorrecto o no se entiende bien sientanse libre de usar el cuadro de comentarios de bajo al igual si tienen alguna consulta o sugerencia. Hasta el proximo tutorial! Sebastian.

¿Te gustó este tutorial? ¡Compártelo!

175 Comments


  1. Me parece muy buen tutorial, aún no lo pruebo, sin embargo se que si funciona. Creo que
    falta un poco explicar que existen 2 protocolos TCP y UDP y que ambos se pueden implementar en Android. Cada uno con sus diferentes usos. Fuera de eso me parece muy bien explicado. Saludos

    Reply

      1. `Hola amigo me gustaria saber que puedo haer para enviar imagenes en lugar de mensajes osea screenshots

        Reply

  2. Hey Sebastian esta genial este tutorial, tanto que voy ha hacerlo y probarlo lo mas pronto posible.
    Este sistema es igual para comunicacion entre 2 dispositivos con Bluethoot?, o es posible hacer que 2 dispositivos Android se comuniquen con WiFi?.

    Muchas gracias amigo

    Jaime Leon

    Reply

    1. Hola jaime e alegro que te halla gustado!.

      Respecto del Bluethoot creo que es diferente no es como una conexion de red no usa el protocolo TCP/IP no creo que funcione seguramente se podra hacer pero de otra forma no investigo sobre eso todavia.
      sobre si dos dispositivos con android se comuniquen con wifi creo que si seria posible siempre que los dos esten conectados al mismo wifi.
      Ahora si te referis que se conecten directamente uno con el otro mediante wifi de forma adhoc no te sabria decir si es posible realizar en android ese tipo de conexion pero si se llegaran a conectar y ambos tendrian una ip en el mismo segmento deberia de funcionar.
      cualquier cosa avisame.

      Saludos!

      Reply

  3. Muchísimas gracias, es muy interesante, a modo de “pequeña ampliación” se te ocurre por donde empezar para que el cliente pueda mandarle imágenes también a servidor?

    Gracias, un saludo

    Reply

  4. Una consulta, soy totalmente novato en el tema de android, pero a mi y a una amiga nos encargaron hacer una aplicación la cual consiste en leer un pdf que va a estar alojado en un servidor, básicamente es eso, un lector de noticias (las noticias las van a subir como un pdf a un servidor), mi aplicación tendría que conectarse a este mismo y permitir leer online o descargar ese mismo pdf, para hacer esto necesito esto de los sockets???
    Soy totalmente novato y cualquier ayuda que me puedan dar para encaminarme en como realizar la aplicacion o cualquier consejo es aceptado!
    Saludos, leo siempre el blog y esta muy bueno.

    Reply

  5. Una consulta, soy totalmente novato en el tema de android, pero a mi y a una amiga nos encargaron hacer una aplicación la cual consiste en leer un pdf que va a estar alojado en un servidor, básicamente es eso, un lector de noticias (las noticias las van a subir como un pdf a un servidor), mi aplicación tendría que conectarse a este mismo y permitir leer online o descargar ese mismo pdf, para hacer esto necesito esto de los sockets???
    Soy totalmente novato y cualquier ayuda que me puedan dar para encaminarme en como realizar la aplicacion o cualquier consejo es aceptado!
    Saludos, leo siempre el blog y esta muy bueno.

    Reply

    1. Hola,

      Ese tipo de cosas son muy complejas de implementar,
      ya que ademas de la app de android tiene que haber una plataforma web que sea a la cual se acceda y por ej permita. ver desde el navegador del telefono ese pdf. o descargarlo o hasta incluso leer una respuesta JSON ó XML del servidor con los datos del pdf la eleccion, de que usar depende de un analisis profundo sobre el tema.
      Para este caso NO seria necesario usar esto de sockets que describo en el tutorial.
      Es algo complejo ya que es necesario tener conocimientos sobre diferentes tecnologias.

      suerte con el proyecto. saludos

      Reply

  6. Cual seria el comando para abrir algun programa desde windows como en el caso de ubunto que usan el opt, como se aria en windows para abrir programas

    Reply

  7. Genial este tutorial! cai por aca buscando como crear un chat al stylo whatsapp. o sea me interesaria saber como enviar mensajes,fotos entre diversos dispositivos android conectados via WIFI o paquetes de datos, utilizando sockets lo puedo lograr? me tirarias una pista de como empezar o sobre que temas buscar para lograr lo que pretendo. desde ya muchas gracias genial el blog

    Reply

    1. Hola que bueno que te halla gustado,
      respondiendo a tu pregunta con sockets se podria hacer, deberia haber una aplicacion servidor a la cual se conecten las app cliente en android, el servidor deberia manejar muliples conexiones
      por lo que vas a tener que usar threads. para el tema de las fotos no se, supongo que deberias buscar la forma de pasar una foto por un socket hasta el servidor y este despues deberia volver a enviarla al destinatario.
      Como veras esto es ya es de una complejidad avanzada y excede ampliamente los temas de este tutorial pero si puede servir de base.
      Te dejo un link de un tutorial de una aplicacion de chat (muy simple) que maneja multiples conexiones, lo unico es que tanto el cliente como el servidor esta en JAVA J2SE no para android pero si te puede servir de ejemplo para hace un cliente en android.
      http://www.chuidiang.com/java/sockets/hilos/socket_hilos.php

      Otra opcion es utilizar algun protocolo de chat como XMMP o jabber del cual hay mucha informacion en internet, te podrias bajar un servidor que maneje alguno de estos protocolos por lo gral son opensource, configurarlo a tu gusto y hacer un cliente en android.
      te dejo un link sobre esto:
      http://blog.chuidiang.com/2011/04/22/haciendo-un-cliente-de-chat-xmpp/
      hay algunos ejemplos en android que te podes bajar.
      Si yo deberia hacer una aplicacion de chat escogeria hacerla de esta ultima forma.
      de momento no trabaje con eso asi q mas no te podria ayudar.
      espero que te sirva
      Saludos.

      Reply

  8. Hola que tal, esta muy interesante y útil este tutorial, como puedo hacer para que los datos que mande de la aplicacion del servidor a la aplicación cliente sea la url de un video y este se pueda reproducir. Gracias

    Reply

      1. ok, gracias, bueno en este caso son videos independientes no son de youtube, es material de audio y video de conferencias y mi objetivo es reproducirlos desde la url

        Reply

        1. Lo vas a tener mas complicado entonces, respecto del servidor:
          es un servidor de video que pueda hacer un streaming del video? tipo upnp o algun otro protocolo??

          o estos videos estan almacenados en el disco y te gustaria que lo pudieses ver como una especie de visor de video como los q hay en algunas web pero en tu android?
          Si este es el caso no te sabria decir si estos es posible de hacerse en android, te recomendaria tratar de implementar algo parecido al primer caso tratando de implementar algun tipo de servidor que permita realizar streaming de video y podrias desarrollar alguna especie de app cliente que reciba como parametro la url para luego poder ver el video o buscar si hay algun cliente ya hecho y ver si te sirve.

          Nunca he realizado algo similiar y no te puedo aseguar si lo que te dije es aplicable para tu caso o no pero busque en google y encontre lo siguiente. tal vez te pueda servir.

          http://en.wikipedia.org/wiki/List_of_UPnP_AV_media_servers_and_clients
          http://lgallardo.com/2011/10/27/ver-peliculas-en-android-desde-un-servidor-upnp/

          saludos

          Reply

          1. Hola que tal, gracias por la información, seré lo más claro posible, lo que quiero hacer es una aplicación como youtube que es a lo que se le llama video en demanda para que estemos en el mismo contexto también aclaro que streaming es transmisión de audio y video EN VIVO yo NO quiero hacer streaming la finalidad de mi app es reproducir videos que son videos de conferencias en formato mp4(m4v) que se pueden reproducir en android si no duran más de 10 min donde también tendria que buscar la manera de que se descarguen bien todos los datos por medio del buffer y también material de sólo audio que es mp3 pero que ahi no es tan laborioso el asunto, si tu me puedes orientar ¿de que forma puedo implementar esto? ¿si me sirven los sockets o de que otra forma? Muchas gracias por tu atención Sebastian saludos


          2. Hola Enrique,

            La verdad que nunca hice algo de ese estilo de no te puedo orientar de momento.
            yo que vos buscaria en internar alguna app parecida y tratar de analizarla, o podes postear esta misma consulta en algun foro de android, tal vez tengas suerte.

            Si alguno tiene alguna idea siéntase libre de compartirla.

            Saludos


  9. Hola Sebastian, me parece muy interesante y de gran ayuda este tutorial!
    Por otro lado estoy tratando de implementarlo pues creo que es el punto de partida para una investigación que estoy realizando. El tema es que he implementado la aplicación en la computadora y el dispositivo android, pero después de digitar la dir. ip y el puerto, le doy a conectar me sale siempre error! en la consola de Android, he quitado el firewall de windows, inclusive pero no c llega a conectar.

    En el LogCat de Android Me aparece el siguiente mensaje:

    Error connect() android.os.NetworkOnMainThreadExeption

    Entonces quería consultarte si habría algún setting adicional que no estoy considerando o cual podría ser la razón.

    Un abazo

    Alejandro

    Reply

    1. Hola en donde lo estas probando en el emulador o en algun telefono?
      que version de android es?
      No te sabria decir por q da ese error, habria que analizar por q se produce el error.
      Da algun otro error en el logcat?
      Podes probar correr la aplicacion en modo debug y ver cuando es que da el error.

      saludos.

      Reply

    2. Hola Sebastian, gracias por tu respuesta, ya está corriendo y funcionando, era un error en el layout, estos días me he ocupado de crear la aplicación servidor en el teléfono y lo he logrado, pero tengo un problema con los try & catch que permiten abrir y leer el socket, pasa que mientras esté en la subrutina del try-catch no se publican los mensajes en la caja de texto (la uso a modo de consola) y solamente cuando termino la conexión se publican estos.
      Sabes si hay alguna manera de reemplazar estas sentencias (try-catch), de tal forma que no se interrumpa el normal funcionamiento del programa….Gracias por la respuesta que me puedas dar! Un abrazo

      Reply

  10. hola soy nuevo por aquí y estoy empezando a programar aplicaciones para android bueno es lo que me dejaron en mi trabajo :).
    tengo que hacer una aplicación como un mantenimiento buscar, modificar, insertar , listar
    de los ejemplos que tengo me he podido guiar , la aplicacion para buscar normal funciona para insertar tan bien pero por separado en proyectos diferentes, ahora tengo q hacer un formulario que busque y luego cargue los datos en las cajas de texto y combobox y bueno esi si funciona lo siguiente que en ese formulario pueda modificar y guardarlo en la base de datos remota sql de la empresa a traves de un pagina php que cree y que a sido subida a la web por ahora lo estoy probando todo a modo local, bueno el problema que tengo que no modifica la aparece un error inesperado y la aplicación se cierra y e estado probando y justo cuando se ejecuta esta parte :

    JSONArray jdata=post.getserverdata(postparameters2send, URL_connect);

    donde envía los parámetros a la pagina php es cuando deja de funcionar :( pero normal funciona el buscar y tiene la misma estructura.
    y a mi ese error me salia antes pero cuando no había puesto:

    pero la aplicación si tiene eso en el androidmanifiest

    o es que esa anterior linea de código solo da permiso al primer activity?

    porfavor espero que sepan de alguna solución para este problema y pueda ayudar :)

    Reply

      1. gracias por tu ayuda pero no me sirve de nada, mi problema es que solo el activity con que comienzo es el que tiene acceso a internet y realiza cualquier procedimiento, pero cuando de este paso a otro activity y en este ultimo quiero realizar por ejemplo un modificar y envio los datos a la pagina web es cuando la aplicación deja de funcionar :(, ya probé un insertar y modificar y buscar pero separados ahora que los quiero unir en una sola aplicación solo el primer activity funciona :(
        no se si me pudieras recomendar alguna pagina o contacto que me pueda ayudar :)

        Reply

          1. no usaba el logcat pero ahora lo puse pero igual :S se cierra la aplicacion, use un try catch pero en la exception solo me muestra java.lang.NullPointerException :(


          2. Hola,
            Al logcat deberias revisarlo siempre,
            Si muestra NullPointerException puede deberse a que estas tratando de acceder a un miembro (método o atributo) de un objeto para el que todavía no hemos reservado memoria, o hasta incluso no hallas inicializado algun objeto.
            Te recomiendo que corras la aplicacion en modo debug y trates de encontrar en que parte del codigo ocurre este error, esto es fundamental para poder dar solucion al problema.

            Saludos


    1. Hola queria saber si habias solucionado el problema, queri saber si me podrias ayudar por favor, desde ya muchas gracias.

      Reply

  11. Una pregunta, como puedo descargar el proyecto? es que me marca error al querer descargarlo.

    y para cambiar los datos que se envian se tendria que cambiar el tipo de stream no?

    lo que quiero es poder enviar archivos del cliente al servidor en formato txt.

    Reply

    1. Hola para descargar el proyecto lo podes descargar desde el eclipse, o si no podes
      bajar todo junto comprimido, busca una opcion que dice download

      Saludos.

      Reply

  12. Hola!

    Muy bueno el tutorial. Una pregunta: has incluido algún tutorial sobre comunicación bidireccional?

    gracias!

    Reply

    1. Hola,
      En algun momento tengo pensado hacer uno, pero no todavia.
      igual en internet hay muchos ejemplos si entendes el funcionamiento de este lo otro
      lo podes aprender facilmente.

      saludos

      Reply

  13. Me estoy iniciando en la creacion de sockets para android y tengo una pregunta con respecto al codigo que muestras, dentro del mismo, podrias mencionar en que parte incluyes la frase “HOLA” que muestra en el cuadro de texto? y como podria evadir el boton de enviar, para que automaticamente, al momento de introducir cualquier caracter, se envie sin tener que presionar el boton mencionado. Muchas gracias por tu post y tu respuesta.

    Reply

  14. Men que tal soy nuevo con el android me podrías decir como hago para que eclipse reconozca las librerias de android??

    Reply

      1. Exactamente al SDK creo que me exprese mal, lo que pasa es que a mi me marca error eclipse

        Reply

  15. hola necesito saber como hacer un socket de bluetooth en android, donde reciba datos de un sensor por fa lo necesito es para un trabajo final en mi escuela

    Reply

  16. hola, buscando información sobre imagenes para aplicaciones android he llegado a tu artículo que agradezco. Quería plantearte una pregunta. Estoy preparando una aplicación para android que obtendrá información a través de JSON, pero me he dado cuenta que esto no sirve para obtener fotos del servidor, las que en cada momento necesite. ¿Sería una buena idea la opción de socket para obtenerlas del servidor? o ¿hay alguna otra forma?
    Gracias
    José Miguel

    Reply


  17. Falta el contenido que se genera automaticamente en los archivos que seria la carpeta gen, que contiene la clase R con todos los elementos de la vista. No lo puedo correr debido a eso, si me estoy equivocando en la ejecucion o me falta configurar algo sera bienvenida la sugerencia gracias

    Reply

  18. hola leí tu tutorial y me parece muy interesante, estoy trantado de unas aplicación android para leer datos de un server slq server 2008 y usar un socket hasta el momento lo mas sencillo, de igual manera no se si me pudieras apoyar con algun tutorial para hacer la conxeion directa del dispositivo al servidor

    Reply

    1. Segun tengo entendido no hay ningun forma de estableces una conexion directa r con el servidor de base de datos, por lo gral se suele usar un webservice que devuelva los datos en json o xml.
      saludos.

      Reply

  19. Hola me sirvió mucho tu tutorial logré realizar una conección TCP Servidor-Cliente con conexión vía WIFI aunque modificando algunas cosas, mi pregunta es la siguiente:

    ya tengo mi proyecto listo y probado como hago para cargar la aplicación Cliente en mi dispositivo android?? gracias por tu ayuda

    Reply

  20. Hola! Muy didáctico este tururial.
    Me surge una duda, pero me da que es algo del eclipse. He hecho tanto el servidor como el cliente con eclipse pero poniendo distinto nombre de paquete en cada uno de ellos. El caso que conecta pero cuando envío el mensaje de texto da un error el server y viendo la secuencia del error de la excepción me dice que no encuentra la clase Mensaje_data. Lo soluciono poniendo el mismo paquete en ambas aplicaciones.
    Creía que eran dos entidades distintas sin embargo el server buscaba en el paquete del cliente.
    Mi pregunta es si cuando mandamos el mensaje desde el cliente al recibirlo el server y extraer el objeto este lleva consigo el nombre del paquete del programa que lo origino y lo reclama en el server.
    Es la duda que me corroe. Un saludo y muchas gracias.

    Reply

  21. Muy bien explicado Sebastián!
    Una pregunta, que habría que hacer para que la aplicación del lado del servidor fuera online? LLevo un tiempo queriendo poner modo online a mi juego android. Graciass.:D

    Reply

    1. Hola,
      Para que fuese online, la parte servidor de la aplicacion deberia ejecutarse en algun entorno que tenga salida a internet.
      Para conectarte desde la parte de android en lugar de usar la ip local del “servidor” deberias usar la que da el servidor de internet o algun dominio.
      A esto incluso podes probarlo vos mismo en tu computadora lo unico deberias verificar es que el puerto que usa el servidor tenga via libre a internet y no este bloqueado por ningun firewall.
      Tambien si vas a usar mi app android cliente de ejemplo para internet la conexion va a tardar mas y puede que la app de algun fallo en algun momento ya q no tuve encueta eso a la hora de hacerla.

      Saludos

      Reply

    2. Hola,
      Si por ejemplo queres acceder a la app servidor que esta en tu pc por internet,
      deberias verificar que el puert que usa la app no este bloqueado por un firewall.
      y desde la app cliente android para conectarse en lugar de usar la ip local deberias usar la ip que te da tu isp.

      Saludos

      Reply

  22. Se ve muy bueno justo ahora necesito probar algo asi

    Reply

  23. Hola Sebastián! Felicitaciones por el tutorial!
    Estoy interesada en la comunicación bidireccional con threads mediante sockets. Para cuando piensas que tendréis el tutorial?

    Reply

    1. Hola.
      De momento no tengo planeado un tutorial sobre eso.
      igual si entendistes esto no vas a tener problema en implementar q sea bidireccional.
      en internet hay informacion sobre eso.
      saludos

      Reply

  24. hola que tal me podrias decir como mando una imagen por medio de un socket es que ando desarrollando una app tipo escritorio remoto y e batallado con la imagen por que la que ice en java es con buffer y en android son bitmap el punto mio es mandar una imagen por un soket 😀 haber si me podrias ayudar

    Reply

      1. ok men ya los habia checado pero no me sacaron de la duda gracias de todas maneras 😀

        Reply

  25. Muy buen aporte, aun q me está fallando al tratar de enviar el texto. me dice:
    java.lang.ClassNotFoundException: com.test.socketclient.Mensaje_data en el servidor no entiendo por q. Pues ese paquete existe pero en el cliente el servidor existe la clase pero en otro paquete.

    Reply

    1. Hola que raro, verifique el codigo en el repositorio y la clase com.test.socketclient.Mensaje_data si esta en el servidor.
      proba bajando el codigo de nuevo.
      Saludos.

      Reply

  26. zzz hola amigo tengo un problema consegui que funcionara pero tengo un problema al momento de traslaparlo a un movil usa una api en especifico o algo por el estilo pues no me contesta

    Reply

  27. ahhh necesito hecho uno pero en c++ o en c… donde los puedo conseguir???? y que envie objeto, se puede por cierto????

    Reply

  28. Que tal.
    Necesito acceder a un servidor PACs de libre acceso desde Android
    para descargar imágenes médicas, debo tener presente sólo lo de los sockets o habría a que agregar algo más.

    Reply

    1. Hola,
      No nunca utilize un servidor PACs pero si podes acceder a las imagenes por http las podes descargar simplemente sin usar sockets de esta forma, revisa los comentarios anteriores que ya hubo una pregunta sobre eso.
      saludos.

      Reply

    2. Hola,
      No nunca utilize un servidor PACs pero si podes acceder a las imagenes por http las podes descargar simplemente sin usar sockets de esta forma, revisa los comentarios anteriores que ya hubo una pregunta sobre eso.
      saludos.

      Reply

  29. Como sé el IP y numeró de puerto del SERVIDOR?. gracias

    Reply

    1. Hola,
      La IP es la del Pc o servidor en donde va a correr la app servidor.
      El puerto que use en el tutorial es el 5555.
      saludos

      Reply

    2. Hola,
      La IP es la del Pc o servidor en donde va a correr la app servidor.
      El puerto que use en el tutorial es el 5555.
      saludos

      Reply

  30. Hola, Si utilizo windows en que cambiaria esto

    String ACTNUM = null;
    String ACT1 = “vlc”;// abrir VLC
    String ACT2 = “/opt/google/chrome/google-chrome %U”;// Chrome
    String ACT3 = “gnome-terminal”;// terminal
    String ACT4 = “”;

    Reply

    1. Hola, eso es para linux solamente,
      dale un vistazo al tutorial que hay un link sobre como deberia ser en windows.

      saludos.

      Reply

    2. si eres usuario windows tienes que usar el comando cmd c/ start y la aplicacion que desees por ejemplo yo uso estos y de esta manera espero y a ti te sirva

      String ACT1 = “cmd /c start wmplayer.exe”;// abrir Windows Media Player
      String ACT2 = “cmd /c start chrome.exe”;// Chrome
      String ACT3 = “cmd /c start cmd”;// terminal o el simbolo del sistema o cmd
      String ACT4 = “”;

      Reply

  31. Buenas amigo, e seguido el tutorial al pie de la letra, pero no logro que se conecte, coloco la IP lan que me dice el router, desactivo el Kaspersky para evitar cualquier bloqueo, uso el puerto 5555 asi como lo indicas pero siempre me sale este error “android.os.NetworkOnMainThreadException” y no logro que se conecte. Que pudiera hacer en ese caso? Saludos.

    Reply

    1. Hola,
      Este error a veces ocurre cuando se intenta realizar una conexion atravez de la red en el thread principal (rara vez ocurre), por lo general se suele utilizar un asynctask para esta tarea. En el tutorial no se lo realizo de esta forma, eso tal vez sea un punto encontra del tutorial en algun momento lo modificare.
      te dejo algunos tutoriales por si queres realizar estas modificaciones por tu cuenta.

      http://androideity.com/2011/09/21/trabajando-con-threads-en-android-iii/
      http://www.lucazanini.eu/2012/android/the-android-os-networkonmainthreadexception-exception/?lang=en
      http://android-er.blogspot.com.ar/2012/04/androidosnetworkonmainthreadexception.html

      Si estas probando la aplicacion en un telefono proba desde el emulador para ver que ocurre.
      Saludos.

      Reply

    2. Hola,
      Este error a veces ocurre cuando se intenta realizar una conexion atravez de la red en el thread principal (rara vez ocurre), por lo general se suele utilizar un asynctask para esta tarea. En el tutorial no se lo realizo de esta forma, eso tal vez sea un punto encontra del tutorial en algun momento lo modificare.
      te dejo algunos tutoriales por si queres realizar estas modificaciones por tu cuenta.

      http://androideity.com/2011/09/21/trabajando-con-threads-en-android-iii/
      http://www.lucazanini.eu/2012/android/the-android-os-networkonmainthreadexception-exception/?lang=en
      http://android-er.blogspot.com.ar/2012/04/androidosnetworkonmainthreadexception.html

      Si estas probando la aplicacion en un telefono proba desde el emulador para ver que ocurre.
      Saludos.

      Reply

      1. Estimado, me pasa lo mismo al implementar en ubuntu las aplicaciones…

        Reply

  32. E buscado desde Kaspersky y me sale:

    Javaw.exe-> puerto local:5555 pero la direccion IP sale en 0 todo, porque sera?

    Reply

    1. No uso windows ni kaspersky asi q no te sabria decir pero javaw es el proceso de la app servidor respecto de la ip 0.0.0.0 no es una ip real seguramente puede significar algun tipo de enrutamiento o q tal vez lo puertos esten abiertos, dale un vistazo a la documentacion del antivirus.

      Saludos

      Reply

    2. No uso windows ni kaspersky asi q no te sabria decir pero javaw es el proceso de la app servidor respecto de la ip 0.0.0.0 no es una ip real seguramente puede significar algun tipo de enrutamiento o q tal vez lo puertos esten abiertos, dale un vistazo a la documentacion del antivirus.

      Saludos

      Reply

  33. Buenas, e intentado correr la app en el simulador y alli no arroja el error este: “android.os.NetworkOnMainThreadException” es decir, el error aparece cuando lo corro desde el celular, tengo un nexus 4, cual podria ser el problema o como podria solucionarlo?

    Reply

  34. Al descargar la parte cliente del proyecto y al abrirla con Eclipse se tiene el siguiente error:

    Android requires compiler compliance level 5.0 or 6.0. Found ‘1.7’ instead. Please use Android Tools > Fix Project Properties.

    Gracias

    Reply

  35. muy bueno…. pero quería saber si el servidor puede estar en mi mobil para no depender de una pc y solo por wifi

    Reply

    1. Hola, si el servidor podria estar tranquilamente en un mobil y usando la conexion por wifi.
      lo unico el codigo q hice del servidor no funciona en un telefono pero no seria muy dificil basarse en el y escribir uno en android.
      Saludos.

      Reply

  36. Buenas noches no sé si es el lugar adecuado pero tengo muchas dudas acerca de un tema. ¿Alguien me podría decir si es posible sacar en una actividad de una aplicación android los tweet de una cuenta concretas? Me explico un poco más, estoy haciendo una aplicación y en una opción quiero que se representen los tweets de dos cuentas relacionadas con ella.

    Un saludo y muchísimas gracias

    Reply

  37. hola. me podrias ayudar?? al importar el del cliente me marca errores en los archivos main.xml y en el strings.xml
    espero q me puedas ayudar para corregirlos :) gracias

    Reply

  38. Hola que tal estaba probando tu programa y todo bien pero queria preguntarte como hago para por ejemplo mi android lo tengo en otro lado y la pc en casa, tendria que poner la ip publica de la pc y el puerto, ya que el android no estaria conectada en la red de la pc, entonces faltaria cambiar algo al programa? o solo es configurar mi router tipo Zyxel?
    Gracias por todo

    Reply

    1. Hola, buena pregunta.
      Para poder usarlo atravez de internet tenes q hacer lo siguiente:
      El codigo de la app servidor y cliente no es necesario tocarlo, lo unico q podrias modificar es en la app servidor el numero de puerto si queres usar otro.
      En la red de tu casa lo que deberias hacer en tu router es configurar el firewall para que no bloque el puerto que se va a usar para la conexion, por ej en este caso si no cambias el puerto es el 5555 deberias decirle que para la ip de tu pc (ojo, no la 127.0.0.1 si no la que lo identifica en la red tipo 192.168.. ) no bloque el puerto 5555 usando para protocolo TCP.
      con eso bastaria del lado de tu red, obviamente no tenes q tener ningun firewall en la pc q lo bloque tambien.
      si haciendo esto te da problemas fijate si tu router toma del modem una ip publica o privada(en caso de que tengas 2 equipos por separado)

      para conectarte con tu telefono lo que deberias hacer es en la app cliente en el campo “IP” poner la ip publica que te da tu isp eso lo podes ver dentro de tu router o en alguna pagina como http://www.cualesmiip.com.
      si todo sale bien deberias poder conectarte, obviamente al estar atravez de internet todo va a ser mas lento que en LAN.
      Puede ocurrir que si accedes a internet con el telefono usando 3G no funcione ya que algunos proveedores bloquean los puertos.
      Avísame si pudistes conectarlo.

      saludos.

      Reply

  39. Hola muy bueno el tutorial. Tengo una pregunta, desarrolle una app parecida a esta que simplemente consiste en abrir determinadas aplicaciones, y tengo un problema muy extraño, a ver si me lo podrías solucionar.

    – Cuando lo emulo desde el pc va sin problemas, abre y cierra el socket y, por tanto, me abre las aplicaciones que yo quiero, pero, a la hora de emularlo desde el dispositivo android, ni siquiera me abre el socket. ¿Por que puede ser esto?

    Reply

  40. y conexion a BD mysql por ejemplo , hay un driver o algo para la conexion ??

    Reply

  41. hola muy interesante Sebastian necesito una consulta no hay tutos de conexiones bluetooth es que estoy necesitando si me recomiendas algunos es que quiero hacer una app para monitorear las pulsaciones del corazon con una banda polar y estoy perdido en la parte de la conexion con el dispositivo

    Reply

  42. Excelente simplemente copiando me funciono al primer intento…Dejame decirte que ejecute la app desde una tablet y me sorprendio que se ajustara al tamaño.

    Intentare crear una app servidor con tu codigo y hacerlo bidireccional, pero gracias por la ayuda.

    Reply

  43. Hola una pregunta, en el caso que yo quisiese conectarme desde otra conexion, por ejemplo desde casa de un amigo a mi casa como lo podria hacer o con la tarifa de datos sin tener el wifi encendido, grácias :)

    Reply

    1. Hola, dale un vistazo a un par de comentarios anteriores que ya preguntaron lo mismo y di una explicacion sobre como hacerlo.
      saludos

      Reply

  44. Hola pariente, resulta que estoy intentando hacer un servidor en android, que se pueda realizar la conexion entre moviles y no con intervencion de ningun otro dispositivo como router’s, bueno ya se logro realizar la conexion pero que ocurre que cuando el cliente es una pc funciona perfectamente y no asi cuando el cliente es un movil, tienes alguna idea de porque?

    Reply

    1. Hola, la verdad no te sabria decir sin meter mano y saber un poco mas, no se como se conecten pero se me viene a la mente si los moviles se conectan entre si usando 3G tal vez este ahi el problema ya que es una conexion a internet diferente al que acceda una pc y tiene alguna limitaciones por el proveedor a veces, si se conectan asi dale un vistazo a los comentarios anteriores que ya hubo algunas preguntas sobre eso.

      Saludos

      Reply

  45. Felicitaciones por este didactico tutorial. Me surge una consulta…Es posible hacer esto pero en la direccion inversa?

    Reply

  46. Hola Sebastián,
    muy bueno el tutorial. Tengo una aplicación que necesita conectarse a un PC por
    Wifi y desde una carpeta compartida obtener o copiar un archivo. Esto lo puedo
    hacer con Socket?? a que puerto me tengo que conectar??. Tenés algún ejemplo??

    Saludos desde Buenos Aires, Argentina

    Reply

    1. Hola, si sockets hay siempre en todo lo que sea conexiones atravez de la red, pero a decir verdad nunca hice algo asi y mucho no te podria orientar
      te paso unos links que tal vez te sirvan:

      http://stackoverflow.com/questions/2084700/file-sharing-between-android-phone-and-a-pc
      http://stackoverflow.com/questions/10417442/client-server-file-transfer-from-android-to-pc-connected-via-socket
      http://stackoverflow.com/questions/7181017/android-file-transfer-through-sockets

      Saludos desde Buenos Aires, Argentina Tambien.

      Reply

  47. Hola!

    Tengo una duda! Respecto a las conexiones.

    Tengo un servidor para enviar y recibir datos. Y una aplicación para realizar estos servicios. Es decir desde mi móvil envió y veo los datos almacenados en el servidor. Va bien con un móvil, pero al momento de querer realizar una consulta desde otro móvil este me manda un error de conexión, que no se logro conectar con el servidor. Ya vi las configuraciones en ambos moviles y estan iguales! Y los permisos son los mismos (es la misma app). Quisiera saber si se debe a la comunicacion de los sockets o alguna idea que tengas! Seria de mucha ayuda!

    Gracias!

    Reply

    1. Hola, el servidor soporta conexiones simultáneas?

      Reply

      1. Hola, no solamente soporta una, recuerda que es el codigo es solo a modo de ejemplo para dar una idea de como funciona solamente.
        Saludos.

        Reply

  48. Hola quisiera comunicarme contigo necesito hacerte algunas preguntas sobre este tutorial

    Reply

  49. una consulta: al importar el codigo, el eclipse solo reconoce el cliente al poner android project from existing code, pero no al servidor, ya me baje el codigo como 3 veces pero igual no reconoce al codigo del servidor

    Reply

    1. El servidor es una aplicación en Java, sólo tienes que compilarlo como tal. Saludos.

      Reply

  50. MEN, EXELENTE TUTO! ME ACABAS DE SACAR DE UNA GRANDE!!! MIL GRACIAS!!

    Reply

    1. Hola, Genial. me alegro que ye sirva.
      Saludos.

      Reply

  51. Hola! =D Excelente aporte
    Una pregunta amigo,si quisiera hacer la conexión pero varios clientes a un mismo servidor, que es lo que cambiaría???
    De ante mano gracias DTB. :)

    Reply

    1. Hola,
      Del lado del uso de la aplicacion podria como ser como es ahora, en el codigo habria que modificar una buena parte ya que solo lo hice para un solo cliente, pero facilmente puede adaptarse para soportar multiples clientes.

      Saludos

      Reply

    2. Hola, habria que crear un hilo con cada conexion.
      saludos

      Reply

  52. Hola. Como debo hacer para acceder mediante internet? Actualmente solo puedo acceder usando la IP local. De que forma puedo conectar mediante internet? (IP Global)

    Reply

    1. Hola,
      Revisa los comentarios que ya preguntaron eso.
      Saludos.

      Reply

  53. Hola Sebastián, quiero agradecerte por tu ayuda al compartir este gran tutorial, yo realmente es la segunda vez que uso eclipse para android y es mas nunca he programado en java sino en otros lenguajes de programación, aunque ya he entendido el proceso del programa antes indicado, lo que quisiera es saber si como lo has dicho en el texto del tutorial haz desarrollado un tutorial para comunicación bidireccional, para poder recibir datos desde el servidor, gracias nuevamente.

    Reply

    1. Hola,
      de momento no solamente este.
      Saludos

      Reply

  54. Hola! muy buen tutorial. Me gustaría saber cómo poder enviar un archivo (una base sqlite o un archivo de texto) mediante sockets al servidor, dentro de una red local

    Reply

  55. Hola muuy buen aporte no se si me puedas ayudar lo quiero hacer es q mediante un celular android lo use como microfono y el archivo de audio se almacene en mi computadora para luego convertilo en texto… en teoria tengo que usar streaming pero no se como… no se si me pudieras orientar o esta fumado lo q estoy haciendo

    gracias 😀

    Reply

  56. Genial, gracias.

    Reply

  57. Hola, lo estoy probando pero no sé qué direccion teclear en el dispositivo android cliente.
    También he probado desde el AVD de eclipse tecleando 127.0.0.1 pero se interrumpe la aplicación.
    ¿Dónde encuentro la IP que debo de teclear?.

    Reply

    1. Hola,
      La direccion ip local la de la pc (no la 127.0.0.1) en donde esta el servidor con la app php.
      Para ver la ip depende del os q estes usando.

      Saludos

      Reply

  58. Hola, no me deja compilar, me sale éste error

    [2014-01-22 13:05:21 – Dex Loader] Unable to execute dex: java.nio.BufferOverflowException. Check the Eclipse log for stack trace.
    [2014-01-22 13:05:21 – Socket-Client] Conversion to Dalvik format failed: Unable to execute dex: java.nio.BufferOverflowException. Check the Eclipse log for stack trace.

    Reply

  59. muy bueno funciona muy bien, ahora la pregunta como puedo hacer el proceso inverso tener un formulario en una web y que envie el dato a un telefono, para q active un sonido, prenda el flash o adquirir la longitud y latitud. porfa ayuda.

    Reply

    1. Hola, eso es super complicado habria que crear alguna aplicacion web que identifique envie alguna notificacion del tipo push al telefono.

      Reply

  60. hola chicos monte el cliente y el servidor logro que el
    cliente se conecte pero no puedo enviar nada y el servidor me da el mostrado en
    la imagen como puedo solucionarlo? que estoy haciendo mal? soy nuevo en esto de
    programar con java agradecería la ayuda brindada

    Reply

    1. Hola, si sos nuevo en java te recomiendo que no toques android todavia ya que se necesita un conocimiento avanzado sobre java.
      sobre el problema no te sabria, fijate si no esta dando ninguna excepcion en el logcat.

      Reply

    2. Hola Angel a mi me pasó lo mismo, luego de buscar le encontré la solución eso sucede cuando creas la clase y le pones otro nombre, si miras dentro de src veras el nombre de tu clase, por lo que veo tu clase debe tener el mismo nombre que el del cliente en tu caso sería tin.Socket.socketv1, osea tanto tu cliente como tu servidor deben tener ese nombre de clase, y dentro van tus javas como servidor.java y mensaje_data.java

      Reply

  61. Hola estoy tratando de integrar una arduino UNO con mi android, y ya lo he logrado siguiento tu tuto que está super bueno, pero me gustaria saber cómo le puedo hacer para por ejemplo saber desde el smartphone si el bluetooth(módulo) de mi targeta arduino está prendida o apagada….???

    Reply

  62. Saludos, aunque excelente post. Pero me pregunto como hago para implementar esto mismo usando la red de datos de mi proveedor de telefonía móvil ?

    Reply

  63. ace un momento ·
    Quisiera saber como configuras el celular para
    conectarlo con eclipse y te corra la aplicacion. ya
    que cuando hago todos los pasos y le pongo “run
    as, amdroid aplicaction” se abre el emulador y mi
    cel no responde. tengo android jelly bean

    Reply

    1. Hola, tenes que activar la depuracion usb eso lo haces desde configuracion en la opcion desarrollo.
      saludos

      Reply

  64. Buenas, muchas gracias por el tutorial, no consigo que conecte la app, alguien me podria ayudar? la ip que debo de meter es la del router???

    Reply

  65. Hola,buenas!! primero gracias por el tutorial!! A ver si alguien me puede ayudar, he hecho la app en eclipse adaptandola solo para que envie mensajes de texto al servidor pero no consigo que conecte, he metido mil ips y nada, alguien me echa una mano porfavor???? GRACIAS!

    Reply

  66. Hola que tal, ando haciendo un proyecto para graduarme de un chat pero quiero que muchos clientes se conecten al mismo servidor, Ya lo hize con peticiones en php pero va muyy lento me gustaria hacerlo son sockets que vaya rapido. Espero y me entiendan, Muchas gracia

    Reply

  67. Hola Sebastian buen Tuto…

    Quisiera saber cual es la direccion IP del Servidor o como saberla?? te agradeceria mucho..!! Saludos

    Reply

  68. Buen código Sebastian ya lo he probado y funciona :D, Quería preguntarte porque en tu código no ha sido necesario Threads o AsyncTask, en otros programas de creación de cliente servidor recomiendan colocarlos para que puedan comunicarse en red pero en tu código veo que no haz usando ningun
    runOnUiThread(new Runnable() {
    @Override
    public void run() {
    O similar, podrias explicarle porque y sin embargo funciona a la perfección?

    Gracias
    Nícolas

    Reply

  69. Buenos días…
    Verás, estoy empezando, y de momento me dedico a leer y leer info al
    respecto. Pero en todos los casos y ejemplos que veo, instalan el cliente y
    el servidor en la misma computadora.

    Mi pregunta, y a ver si aquí me puedes ayudar, es ¿cómo implemento/instalo
    la versión servidor en otro equipo y cómo lo referencio desde el cliente?
    Si la tengo en mi equipo sé la IP del equipo servidor sin problema, pero si
    el equipo está en otra red (como quien dice en otro país), ¿cómo se lo
    indico al cliente para que pueda “salir” de su red y equipo y conectar con
    el servidor esté donde esté?

    No sé si me explico, pero ahora mismo es la mayor duda que tengo después de
    tanto leer y leer info al respecto.

    Gracias y un saludo

    Reply

  70. Alguien puede ayudarme con este error al intentar conectarme E/Error connect()? android.os.NetworkOnMainThreadException

    Reply

  71. Hola Sebastian, actualmente me encuentro culmimando el master en robótica y parte de mi tesis tiene que ver con android, y tu explicacion fue una de las mas claras, sencillas y directas de uso cliente -servidor. Muy bien explicado. Si te apasiona la tecnología, tengo una comunidad llamada 3universo, el cual la idea es promover una sociedad de conocimiento. Asi que eres bienvenido a compartir lo que mas te guste. http://www.facebook.com/groups/comunidad.3universo y http://www.facebook.com/3universo, cuando ya me despeje de la tesis como hobby me pongo a experimetar con la web y en mente tengo una creacion de una plataforma. La programacion para mi es mi hobby y el diseño web es una forma de arte tecnológica jeje.
    Saludos!
    Nícolas

    Reply

  72. Hola Bro, disculpa, tengo un problema, y es que a la hora de pulsar en el botón CONECTAR, me arroja el correspondiente mensaje de error en el TextView, y en el logcat me aparece lo siguiente:

    11-09 12:12:34.336 14859-14859/com.leonilohr.cliente E/Error connect(): android.os.NetworkOnMainThreadException

    ¿Podrías ayudarme por favor? soy nuevo en programación :)
    De antemano muchas gracias. Saludos

    Reply

  73. Hola en el lado del servidor me aparece error en la variable que se declara al principio “Mensaje_data mdata = null;” no tiene que tener algún tipo o algo así ?

    Reply

  74. Hola en el codigo me sale error en la variable Mensaje_data mdata = null; creo que le falta el tipo de variable que es (int,String,etc.). Me podrias ayudar por favor.

    Reply

  75. Hola, no seguiste con el programa para enviar del servidor al cliente?

    Reply

  76. Hola gracias por compartir todo tu conocimiento, estoy haciendo un proyecto para tiendas y me gustaría que cuando se yo cree una nueva tienda no tenga que cargarla desde la aplicación sino solo al ingresar la longitud y latitud en una base de datos, por medio de la aplicación se actualice la información y el usuario pueda ver en el mapa la nueva tienda, tienes alguna idea de cómo se podría hacer. Agradezco tu ayuda.

    Reply

  77. Gracias por compartir conocimiento me sirvio de base para otras cosas.

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *