public void disconnect() {
   if (isConnected()) {
     try {
       Envelope message = new Envelope("DISCONNECT");
       message.addObject(messageIndex);
       output.writeObject(encryptCipher.doFinal(message.getBytes()));
       sock.close();
       sock = null;
     } catch (Exception e) {
       System.err.println("Error: " + e.getMessage());
       e.printStackTrace(System.err);
     }
   }
 }