Ver la Versión Completa : ServerSocket se cierra al acabar.
MorSerNa
29/04/15, 08:08:26
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?
http://i.gyazo.com/18e4b8f1a9dc445ea00e41d885140298.png
Abajo, al recibir la imagen , el socket se cierra, pero no quiero (T-T) (T-T)
mocelet
29/04/15, 10:36:34
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.
MorSerNa
29/04/15, 12:11:00
Que encierre todo a partir de donde? Hasta el socket.accept
mocelet
29/04/15, 14:37:21
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.
MorSerNa
29/04/15, 16:51:05
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 :risitas::risitas:
MorSerNa
30/04/15, 00:48:23
Solucionado : metí el date = new date(); de nuevo en el bucle.
Muchas gracias moce ^^
vBulletin® v3.8.1, Copyright ©2000-2025, Jelsoft Enterprises Ltd.