Ho questo server:

codice:
public class Server {
    private static int port=2000;
    private static int T=0; 
    private Socket client;
    private DataInputStream input;
    private DataOutputStream output;
    private String idFile="2000";
    
  
  private boolean isDigit(String n) throws NumberFormatException{
    try{  
      Integer.parseInt(n);
      return true;
    }catch(NumberFormatException nfe){
       return false; 
    }
  }
  
  public Server(int port){
        this.port=port;
  } 
  private void Autenticate(){
      SecurityService s=new SecurityService();
      try{
          
          int c=input.readInt();
          System.out.println("idship= "+c);
          boolean risposta=s.login(c);
          if (risposta){
              System.out.println("OK autenticazione riuscita");
              output.writeUTF("ACK");
          }    
          else
              output.writeUTF("NAK");
          output.flush(); 
      }catch(IOException ioex){
          System.err.println(ioex.getMessage());
      }
  }
  public void Start() throws IOException {
         int c=-1; 
         try{
             System.out.println ("Server in partenza sulla porta " + port);
             ServerSocket server = new ServerSocket(port);
             System.out.println ("Server partito sulla porta " + server.getLocalPort() ) ;
          while(true){
             System.out.println ("In attesa di connessioni...");
             client = server.accept ();
             System.out.println ("Richiesta di connessione da " + client.getInetAddress ());
             input =new DataInputStream(new BufferedInputStream (client.getInputStream()));
             output = new DataOutputStream( new BufferedOutputStream(client.getOutputStream()));
             do{
                try{
                
                 c=input.readInt();
                
                switch(c){
                  case 10:
                     output.writeUTF("OK");
                     output.flush();
                     Autenticate();
                  case 30:
                     System.out.println("Client terminate");
                     client=null;
                  case 40:
                     double lat=input.readDouble();
                     System.out.println(lat);
                     double lon=input.readDouble();
                     System.out.println(lon);
                     
                  case 50:
                     System.out.println("File inviato");
                     
                  default:   
                     ;
                 }             
                }catch(IOException ioex){
                    System.err.println(ioex.getMessage());
                }
             }while(!(c==30));
             input.close();
             output.close();
             
          }
         } 
         catch(EOFException ex){
             System.out.println("Client ha terminato la connessione");
         }catch(IOException ioe){
             System.err.println(ioe.getMessage());
         }
  }
}
il problema è questo il client invia 40 e poi giustamente il server riceve 2 double che li stampa con una System.out.println()

il fatto strano è che dopo aver stampato i due double stampa anche la stringa "File inviato" che dovrebbe scrivere invece quando riceve 50.Perchè?

ecco cosa stampa
Server in partenza sulla porta 2000

Server partito sulla porta 2000

In attesa di connessioni...

Richiesta di connessione da /127.0.0.1

idship= 11

11

OK autenticazione riuscita

Client terminate

8.54125290036E-313

1.7720935413722294E174

File inviato

39.848953402657074

16.925433180931204

File inviato

39.208805556246155

16.447228466132938

File inviato

38.460536806432735

16.727519194792468

File inviato

38.29210199097713

17.508607363607148

File inviato

38.85835930243228

18.072364112341404

File inviato

39.6386943800757

17.900474086106414

File inviato

39.91567075222162

17.150972182311154

File inviato

39.43463761966107

16.51294699479987

File inviato

38.63785462607226

16.572995938566528

File inviato

38.25788038120771

17.275910291641956

File inviato

38.64406145345488

17.97543383946423

File inviato

39.44134474595498

18.028427858183672

File inviato

39.9167116764437

17.38616989138407

File inviato

39.63311208129664

16.63914895181661

File inviato

38.851286120405454

16.474172646256044

File inviato

38.29004097663836

17.042919429207547

File inviato

38.46538284686022

17.822486131335676

File inviato

39.21610322421954

18.096142721859874

File inviato

39.85199325589654

17.612290593484218

File inviato

39.78841857932453

16.815781161638874

File inviato

39.08382945895416

16.438921524671002

File inviato

Client terminate

8.54125062346E-313

3.66562523587626E-105

File inviato

tulipan