Italian Chiarimenti per traffico rete...

stefanoxjx

Active Member
Licensed User
Longtime User
Bando alle ciance :D
Rieccomi con un po' di domande...
In questi giorni ho meditato, ho cercato, ho letto e ho capito un po' la filosofia android.
Ho capito dove sbagliavo finalmente e devo cambiare completamente metodo di ragionamento.
Detto questo, sono riuscito finalmente a capire e far funzionare 4 righe di codice che fanno quello che mi serve :D
Ora però nasce un'altro problema, del quale avevo già parlato qualche post fa e al quale non ho trovaro risposta e cioè la disconnessione.

Quindi, il discorso funziona così:
- L'app Android apre la connessione verso un "server"
- Il server gli dice "ok, ci sono"
- L'app Android invia una stringa che il server interpreterà come un comando

A questo punto, ho necessità che la connessione venga chiusa.
Se è il server a chiudere la connessione, android non se ne accorge e quando vado a inviare un nuovo comando, android si incazza.
Se chiudo la connessione da android con Client.close, il socket viene deinizializzato e quindi dovrei stare li a reinizializzarlo ogni volta.
Esiste un comando che mi permetta di chiudere la connessione senza che il socket venga deinizializzato e quindi, che rimanga utilizzabile
con un semplice Client.connect("192.168.0.252",80,2000)?
Grazie.

Stefano
 

coslad

Well-Known Member
Licensed User
Longtime User
Dopo il "close" il socket non va ' inizializzato di nuovo , devi esattamente come hai scritto richiedere una nuova connessione .
 

stefanoxjx

Active Member
Licensed User
Longtime User
Ma allora, perchè se eseguo client.close, al successivo invio del comando mi da il seguente errore?
B4X:
java.lang.NullPointerException

Se invece non eseguo client.close e continuo ad inviare comandi (prima che il server mi disconnetta) funziona e non da errori.
 

stefanoxjx

Active Member
Licensed User
Longtime User
Ho risolto aggiungendo questa riga:

B4X:
  If Client.IsInitialized=False Then Client.Initialize("Client")

Non so se è la soluzione migliore, però funziona :)
 
Top