Autore Topic: Gestione array  (Letto 490 volte)

Offline andrea_g

  • Utente junior
  • **
  • Post: 58
  • Respect: +1
    • andreagorfer
    • @andreagorfer
    • Mostra profilo
    • Bondon's Crew
  • Dispositivo Android:
    Galaxy S3
  • Sistema operativo:
    Max OS X 10.9.2
Gestione array
« il: 30 Aprile 2013, 16:32:41 CEST »
0
Ciao ragazzi. Sto creando un'app un po' complessa ma che sintetizzerò al massimo in modo che possiate capire al meglio. :-)
Ho due bottoni: uno toggle ed uno classico. Il primo,se premuto, manda e subito dopo riceve pacchetti in esadecimale tramite inputstream e li visualizza sul Logcat. Il secondo, invece, riceve un pacchetto di lunghezza maggiorata di uno quindi, se ripremo il primo tasto i pacchetti successivi sono "sballati".
Come posso fare a risolvere questa cosa? Ho pensato sia ad un while che a dei flag ma mi va' in loop di errori. Come posso fare?
Il pezzo di codice è questo:
Codice (Java): [Seleziona]
 public void run()
    { mRun = true;
      try {
            InetAddress serverAddr = InetAddress.getByName(SERVERIP);
            Log.i("TCP Client", "C: Connecting...");
            socket = new Socket(serverAddr, SERVERPORT);
            connected=true;
            while (connected)
                {
                        try
                        {
                                Log.i("TCP Client","C:Sending command.");
                                out = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()), true);
                                Log.i("TCP Client", "C: Sent.");
                                Log.i("TCP Client", "C: Done.");
                                in = socket.getInputStream();
                                while (mRun)
                                {  
                                        Log.i("TCP Client", "sono qui");
                                        //while (fAttesa)
                                //      {
                                                // niente
                                        //}
                                        int i = 0;
                                        for ( i = 0; i < a.length; i++)
                                        {Log.i("TCP Client", "Sono nel ciclo for "+in.available());
                                                try
                                                {
                                                        a[i] = (short) in.read();
                                                }
                                                catch(Exception e)
                                                {
                                                        a[i] = 666;
                                                }
                                                //Log.i("TCP Client", "Sono nel ciclo for");
                                                Log.i("TCP Client", "valore:"+ a[i] + " indice:" + i + " len " + a.length);
                                        }
                                        Log.i( "TCPClient" , "mmmmmmm");
                                        fAttesa = true;
                                }  
                        } catch (Exception e)
                        {
                                Log.e("TCP", "S: Error", e);              
                        } finally
                        {

                                socket.close();
                        }
                }
                } catch (Exception e)
                {
                        Log.e("TCP", "C: Error", e);
                        System.exit(1);
            }    
    }
Andrea