Home Menu

Menu



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


 
Herramientas
  #1  
Viejo 29/04/15, 08:08:26
Avatar de MorSerNa
MorSerNa MorSerNa no está en línea
Miembro del foro
Mensajes: 478
 
Fecha de registro: feb 2015
Mensajes: 478
Modelo de smartphone: Huawei G510
Versión de ROM: SlimLP+
Tu operador: Yoigo
Mencionado: 6 comentarios
Tagged: 2 hilos
ServerSocket se cierra al acabar.

Tengo un servidor que recibe una imagen y la guarda en el escritorio por socket. Lo que pasa que al recibir 1 imagen, se me cierra el programa entero. ¿Como puedo hacer que siga funcionando?

(Click para mostrar/ocultar)



Abajo, al recibir la imagen , el socket se cierra, pero no quiero (T-T) (T-T)
Responder Con Cita


  #2  
Viejo 29/04/15, 10:36:34
Avatar de mocelet
mocelet mocelet no está en línea
Desarrollador
Mensajes: 2,203
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -
Mencionado: 17 comentarios
Tagged: 2 hilos
Se te cierra porque el programa acaba, si quieres que espere la recepción de otra imagen tienes que volver a hacer socket.accept(), que bloqueará la ejecución hasta que haya otra petición.

Con poner un while(true){ } que encierre todo a partir de, e incluyendo, Socket sock=socket.accept() te vale.

P.D: La fecha también tendrás que actualizarla dentro del bucle, o si no siempre escribirá el mismo fichero. Que, por cierto, si te mandan dos imágenes en el mismo segundo, se sobreescribirán porque el fichero tiene el mismo nombre.

Última edición por mocelet Día 29/04/15 a las 10:38:59
Responder Con Cita
  #3  
Viejo 29/04/15, 12:11:00
Avatar de MorSerNa
MorSerNa MorSerNa no está en línea
Miembro del foro
Mensajes: 478
 
Fecha de registro: feb 2015
Mensajes: 478
Modelo de smartphone: Huawei G510
Versión de ROM: SlimLP+
Tu operador: Yoigo
Mencionado: 6 comentarios
Tagged: 2 hilos
Que encierre todo a partir de donde? Hasta el socket.accept
Responder Con Cita
  #4  
Viejo 29/04/15, 14:37:21
Avatar de mocelet
mocelet mocelet no está en línea
Desarrollador
Mensajes: 2,203
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -
Mencionado: 17 comentarios
Tagged: 2 hilos
Código:
main(...){
   [...]
   ServerSocket socket = new ServerSocket(...)
   while(true){
      Socket sock = socket.accept();
      date = new Date();
      [... el resto igual...]
   }
}
En otras palabras, el código de aceptar una conexión entrante y procesar la subida del fichero se repetirá infinitamente hasta que cierres el programa o salte una excepción.
Responder Con Cita
  #5  
Viejo 29/04/15, 16:51:05
Avatar de MorSerNa
MorSerNa MorSerNa no está en línea
Miembro del foro
Mensajes: 478
 
Fecha de registro: feb 2015
Mensajes: 478
Modelo de smartphone: Huawei G510
Versión de ROM: SlimLP+
Tu operador: Yoigo
Mencionado: 6 comentarios
Tagged: 2 hilos
Cita:
Originalmente Escrito por mocelet Ver Mensaje
Código:
main(...){
   [...]
   ServerSocket socket = new ServerSocket(...)
   while(true){
      Socket sock = socket.accept();
      date = new Date();
      [... el resto igual...]
   }
}
En otras palabras, el código de aceptar una conexión entrante y procesar la subida del fichero se repetirá infinitamente hasta que cierres el programa o salte una excepción.

Gracias ^^^^^^

No me funciona lo de actualizar la fecha dentro del while.
Pense que seria date.update o algo asi
Responder Con Cita
  #6  
Viejo 30/04/15, 00:48:23
Avatar de MorSerNa
MorSerNa MorSerNa no está en línea
Miembro del foro
Mensajes: 478
 
Fecha de registro: feb 2015
Mensajes: 478
Modelo de smartphone: Huawei G510
Versión de ROM: SlimLP+
Tu operador: Yoigo
Mencionado: 6 comentarios
Tagged: 2 hilos
Solucionado : metí el date = new date(); de nuevo en el bucle.

Muchas gracias moce ^^
Responder Con Cita
Respuesta

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

Herramientas

Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 21:05:22 (GMT +2)

Cookies
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007