16/12/14 8:57
Dice
Ho un client android e un server c# che comunicano attraverso una socket; funziona tutto ok; però c'è un problemino con la gestione delle socket
Il fatto è che client e server dovrebbero stare sempre connessi, perchè il server potrebbe inviare i messaggi al client in qualunque momento; il problema è che l'utente android può spostarsi dove li pare e quando si sposta troppo c'è il cambiamento di cella, col relativo cambiamento di rete (come quando dall'ufficio si ritorna a casa e viceversa). Visto che cambia la rete (il cellulare si disconnette dalla vecchia rete e si collega ad una nuova rete) la socket si disconnette e quindi il server non riesce più ad inviare i messaggi al client.
La mia domando è: come posso gestire una tale situazione? come mi conviene gestire le socket? Pensavo di fare una cosa del genere: che il server, non appena ha un messaggio da inviare fa questa serie di operazioni: connettiti al client-invia messaggio-disconnettiti. (però non so se è realizzabile una cosa del genere, perchè il server per connettersi con il client usa la funzione acceptSocket() che è bloccante e aspetta che sia il client a connettersi).
Voi cosa mi consigliate di fare?
Grazie mille in anticipo
Il fatto è che client e server dovrebbero stare sempre connessi, perchè il server potrebbe inviare i messaggi al client in qualunque momento; il problema è che l'utente android può spostarsi dove li pare e quando si sposta troppo c'è il cambiamento di cella, col relativo cambiamento di rete (come quando dall'ufficio si ritorna a casa e viceversa). Visto che cambia la rete (il cellulare si disconnette dalla vecchia rete e si collega ad una nuova rete) la socket si disconnette e quindi il server non riesce più ad inviare i messaggi al client.
La mia domando è: come posso gestire una tale situazione? come mi conviene gestire le socket? Pensavo di fare una cosa del genere: che il server, non appena ha un messaggio da inviare fa questa serie di operazioni: connettiti al client-invia messaggio-disconnettiti. (però non so se è realizzabile una cosa del genere, perchè il server per connettersi con il client usa la funzione acceptSocket() che è bloccante e aspetta che sia il client a connettersi).
Voi cosa mi consigliate di fare?
Grazie mille in anticipo
aaa