Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android

Respuesta
 
Herramientas
  #1  
Viejo 30/04/15, 00:51:40
Array

[xs_avatar]
MorSerNa MorSerNa no está en línea
Miembro del foro
 
Fecha de registro: feb 2015
Mensajes: 478
Modelo de smartphone: Huawei G510
Tu operador: Yoigo
Conexión Cliente-Server-Cliente

Buuuuenas. Como ya sabreis estoy con los sockets blablabla.....

Budnl , he conseguido enviar una imagen desde un cliente a un server por socket y al recibirla hacerle unas cosillas.

Lo que quiero es que esa imagen la envíe desde ese mismo server a OTRO cliente diferente. ¿Se puede?

Gracias
__________________
BetaTester
Actualmente, SlimpLP+
Responder Con Cita


  #2  
Viejo 30/04/15, 01:42:08
Array

[xs_avatar]
kriogeN kriogeN no está en línea
Colaborador/a
· Votos compra/venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Tu operador: Vodafone
Como poderse se puede, siempre y cuando el cliente esté conectado al Server en ese momento.
Responder Con Cita
  #3  
Viejo 30/04/15, 07:50:16
Array

[xs_avatar]
MorSerNa MorSerNa no está en línea
Miembro del foro
 
Fecha de registro: feb 2015
Mensajes: 478
Modelo de smartphone: Huawei G510
Tu operador: Yoigo
Ajam, pero si tengo por ejemplo 7 clientes conectados, como específico a cual enviárselo?
__________________
BetaTester
Actualmente, SlimpLP+
Responder Con Cita
  #4  
Viejo 30/04/15, 10:18:02
Array

[xs_avatar]
mocelet mocelet no está en línea
Desarrollador
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -

Si tuvieras 7 clientes conectados tendrías 7 objetos Socket, uno por cada conexión abierta. La forma de distinguirlos si no tienes más información es por la dirección IP del cliente, que la puedes saber con el método getRemoteSocketAddress() de cada socket.

Probablemente lo que quieres hacer es más complicado y requiera al menos de un intercambio de información inicial entre el cliente y el servidor para que el cliente se identifique con un nombre de usuario o identificador único, así ya no tienes que andar sabiendo IPs.
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
Responder Con Cita
  #5  
Viejo 30/04/15, 11:36:43
Array

[xs_avatar]
kriogeN kriogeN no está en línea
Colaborador/a
· Votos compra/venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Tu operador: Vodafone
Para casos como este, y más aún siendo conexiones con móviles, lo mejor es usar WebSocket. No tendrás problemas de puertos y sus funciones basadas en eventos se acondicionan mejor a Java.
Responder Con Cita
  #6  
Viejo 30/04/15, 12:06:57
Array

[xs_avatar]
mocelet mocelet no está en línea
Desarrollador
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -

Los websockets se crearon para los navegadores que no tenían una forma de comunicarse de forma bidireccional por cómo fue concebido HTTP en su momento. De hecho, al final es un "apaño" de la conexión HTTP (que no deja de ser un socket TCP) para acordar reutilizar la conexión TCP y utilizarla para envío y recepción de mensajes de texto o binarios.

Problemas de puertos va haber igualmente porque es una conexión TCP, e incluso problemas de proxys HTTP que por lo que sea no sean compatibles con websockets y no hagan el "upgrade".

Las bibliotecas como AndroidAsync (¿alguna otra recomendada para WS @kriogeN?) ofrecen una interfaz con listeners muy sencillos (mensaje de texto recibido, mensaje binario recibido), pero también hace falta un servidor compatible con websockets (yo uso Netty 4.0, pero para enviar un fichero es matar moscas a cañonazos, con node.js seguro que se tarda menos y el código es más legible).
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
Responder Con Cita
  #7  
Viejo 30/04/15, 12:33:09
Array

[xs_avatar]
kriogeN kriogeN no está en línea
Colaborador/a
· Votos compra/venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Tu operador: Vodafone
Para Android uso Autobahn:

http://autobahn.ws/android

Como los servidores que programo son todos ASP.NET tienen soporte nativo de WebSocket.

Mi experiencia es que los WebSocket funcionan mucho mejor a través de Proxys al ir encapsulado sobre HTTP, además de que me parecen bastante más sencillos de programar que los Sockets tradicionales. Tanto a nivel de cliente como de servidor.
Responder Con Cita
Gracias de parte de:
  #8  
Viejo 30/04/15, 13:46:06
Array

[xs_avatar]
MorSerNa MorSerNa no está en línea
Miembro del foro
 
Fecha de registro: feb 2015
Mensajes: 478
Modelo de smartphone: Huawei G510
Tu operador: Yoigo
Entonces que hago? XDD
__________________
BetaTester
Actualmente, SlimpLP+
Responder Con Cita
  #9  
Viejo 30/04/15, 14:13:27
Array

[xs_avatar]
mocelet mocelet no está en línea
Desarrollador
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -

De momento leer mucho sobre cómo hacer aplicaciones con conectividad de red en Android y tal vez de HTTP y de websockets para que valores qué te resulta más cómodo.

Según tus requisitos puede haber más trabajo en la parte de servidor que en la de cliente. Y no tienes por qué hacer en Java el servidor, puede ser PHP, node.js, etc...

Enviar o recibir ficheros se puede hacer con un servidor web normal y corriente también, la dificultad viene si quieres que al subir un fichero avise a alguien para que se lo baje. Si está conectado por socket o websocket es cuestión de enviarle por ese canal bien el fichero o una URL para que se lo descargue. Si no está conectado, o bien el cliente pregunta al servidor periódicamente si hay ficheros nuevos o bien usa el Google Cloud Messaging (GCM) para ser notificado.

Distintos métodos, cada uno con sus pros y sus contras.
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
Responder Con Cita
  #10  
Viejo 30/04/15, 14:50:01
Array

[xs_avatar]
MorSerNa MorSerNa no está en línea
Miembro del foro
 
Fecha de registro: feb 2015
Mensajes: 478
Modelo de smartphone: Huawei G510
Tu operador: Yoigo
Lo que tengo pensado es hacer un ping al Pc del cliente y si esta conectado enviarle la foto y sino por correo electrónico
__________________
BetaTester
Actualmente, SlimpLP+
Responder Con Cita
  #11  
Viejo 30/04/15, 17:33:30
Array

[xs_avatar]
MorSerNa MorSerNa no está en línea
Miembro del foro
 
Fecha de registro: feb 2015
Mensajes: 478
Modelo de smartphone: Huawei G510
Tu operador: Yoigo
 Cita: Originalmente Escrito por mocelet Ver Mensaje
Si tuvieras 7 clientes conectados tendrías 7 objetos Socket, uno por cada conexión abierta. La forma de distinguirlos si no tienes más información es por la dirección IP del cliente, que la puedes saber con el método getRemoteSocketAddress() de cada socket.

Probablemente lo que quieres hacer es más complicado y requiera al menos de un intercambio de información inicial entre el cliente y el servidor para que el cliente se identifique con un nombre de usuario o identificador único, así ya no tienes que andar sabiendo IPs.
Como que 7 objetos Socket?
__________________
BetaTester
Actualmente, SlimpLP+
Responder Con Cita
Respuesta

Estás aquí
Regresar   Portal | Indice > Todo sobre Android > Programación y Desarrollo para Android



Hora actual: 15:54:53 (GMT +2)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /