Falta lo más importante!!!!!!
En el código de ejemplo no se cierra el socket , dando paso libre a agujeros de seguridad y posibles errores en futuras conexiones!!!
Para ello al final del codigo y dentro de la exception
socket.close();
En el código de ejemplo no se cierra el socket , dando paso libre a agujeros de seguridad y posibles errores en futuras conexiones!!!
Para ello al final del codigo y dentro de la exception
socket.close();