Autore Topic: Connessione TCP Client  (Letto 490 volte)

Offline ste9206

  • Nuovo arrivato
  • *
  • Post: 23
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S4
  • Sistema operativo:
    Windows 8
Connessione TCP Client
« il: 05 Marzo 2015, 12:20:21 CET »
0
Ciao a tutti...vi spiego cosa deve fare la mia app, perchè non so bene quale interfaccia usare. Devo realizzare un'app che si connetta via TCP ad un server. L'app per autenticarsi al server deve inviare il messaggio di "Hello" e il server gli risponde "Hello_ack"...ogni 5 minuti deve inviare al server una "keepalive" per sapere se la connessione è ancora attiva; infine deve richiedere al server una stringa "pos" e il server gli invia una stringa contenente la posizione. Ora io vi chiedo:
1-è giusto usare un asynctask o è meglio un intentservice? L'app deve anche restare in ascolto in caso gli arrivassero altre posizioni dal server;
2-quanto dura la connessione tcp?
3-come faccio a stare in ascolto dei messaggi del server? è giusto usare un bufferedReader?
Grazie per il supporto

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Connessione TCP Client
« Risposta #1 il: 05 Marzo 2015, 12:27:52 CET »
0
C'è una ragione per cui vuoi rimanere al livello di connessione socket TCP e non usare un HTTP standard?
Forse l'applicativo software su server è già fatto e testato?
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline tonno16

  • Utente storico
  • *****
  • Post: 1197
  • Respect: +58
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Connessione TCP Client
« Risposta #2 il: 05 Marzo 2015, 13:22:02 CET »
0
Ipotizzò che stai studiando reti a livello universitario. Dove infatti si studiano le socket TCP e UDP. Scommetto che hai un banalissimo server fatto in java con meno di 100 righe di codice. È alla risposta infatti visualizzi la parola hello_ack.
Io avevo fatto qualcosa del genere ma in modo più semplice. Non tenevo la connessione keep Alive

Offline ste9206

  • Nuovo arrivato
  • *
  • Post: 23
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S4
  • Sistema operativo:
    Windows 8
Re:Connessione TCP Client
« Risposta #3 il: 05 Marzo 2015, 15:53:04 CET »
0
Ciò che devo implementare è una cosa del genere: invio una stringa al server, il server può rispondermi anche dopo 100 secondi, una stringa anche abbastanza lunga contenente la posizione; io devo elaborare questa stringa in seguito. Devo usare un asynctask o un intentservice? Avrei optato per gli asynctask, ma dato che il tempo di attesa è di 100 secondi...inoltre dato che non ci sono dei "\n", la readLine() non va bene giusto?
« Ultima modifica: 14 Marzo 2015, 10:49:09 CET da ste9206, Reason: cambio generale »

Offline ste9206

  • Nuovo arrivato
  • *
  • Post: 23
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S4
  • Sistema operativo:
    Windows 8
Re:Connessione TCP Client
« Risposta #4 il: 14 Marzo 2015, 11:25:40 CET »
0
up

Offline tonno16

  • Utente storico
  • *****
  • Post: 1197
  • Respect: +58
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Connessione TCP Client
« Risposta #5 il: 14 Marzo 2015, 13:22:11 CET »
0
perchè il server dovrebbe risponderti dopo 100 secondi. 100 secondi è un elaborazione elevatissima se devi passargli dei dati. A meno che tu non gli mandi un teorema della nasa, dubito che ci metta 100 sec il tuo server

Offline ste9206

  • Nuovo arrivato
  • *
  • Post: 23
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S4
  • Sistema operativo:
    Windows 8
Re:Connessione TCP Client
« Risposta #6 il: 14 Marzo 2015, 14:05:21 CET »
0
Il server è in ascolto di un gps remoto. Quando io con l'app invio una richiesta posizione al server, il server invia a me richiesta eseguita; poi si mette in ascolto del dispositivo: se ha la posizione me la invia subito; dopo 100 secondi tuttavia se il server non riceve alcuna posizione mi invia un messaggio di timeoutfallimento...per questo ho bisogno di restare in ascolto cosi a lungo