Scusami se mi permetto, ma la tua spiegazione è errata, soprattutto dove dici che il telefono è un client connesso a server.
Il Telefono non è un client, il telefono è un terminale, e come tale può comportarsi allo stesso tempo sia da Server che da Client.
Se è vero che la maggior parte delle applicazioni installate sui cellulari agiscono da client, che si collegano verso Server (ad esempio il browser è un client http, facebook è un client social ecc ecc), un terminale mobile contiene al suo interno una serie di "Server" indispensabili per l'operatività
Ad esempio, parlando di smartphone Android, tutte le informazioni personali sono registrate in un substrato "server" che funge da DataBase SQL (un motore sqlite, per l'esattezza), ed è questo substrato server che, alla fine, si connette ai server remoti, sincronizzando le applicazioni, e rendendole disponibili anche in modalità offline.
Ed il meccanismo di sincronizzazione, come si può facilmente intuire, fa si che entrambi gli "attori" in gioco si scambino i ruoli Client/Server secondo le informazioni che si devono scambiare!
iOS e Winphone (ma anche Blackberry) non sono differenti (cambia il motore, ma il principio è lo stesso: il terminale ha un cuore "server" che si occupa della sincronizzazione dei dati).
Un Telefonino è un terminale, non è in sé né un client né un server... è l'applicazione specifica che funge da client o server secondo l'utilizzo che se ne fa...
Qualche esempio?
- Il bluetooth: vivavoce e stream audio si connettono ad un server audio gestito dal telefonino.
- Servizi di condivisione dei contenuti multimediali (DLNA, Condivisione File Smb/Cifs, ObexFTP)... sono tutti basati su server presenti sul terminale.
- SMS/MMS/Mail in uscita: gestiti dal server di posta in uscita.
- Il Layer grafico: è un server cui le applicazioni si connettono per disegnare l'interfaccia ecc ecc
- Il layer audio/video: idem come sopra.
Dire quindi che un terminale è un client è essenzialmente sbagliato... Anche perché il terminale è un mezzo fisico/virtuale, mentre i client/server sono applicazioni che girano sui terminali (o su mainframe ed altri dispositivi).
Quello che l'utente non ha chiaro è che la connessione client/Server non implica necessariamente la connessione ad un terminale remoto, ma nella stragrande maggioranza dei casi, è riferita a connessioni a servizi (da cui Server) presenti sul medesimo terminale, che in qualche maniera si "sincronizzano" con il mondo esterno.
Per essere più precisi alla domanda:
Dunque un terminale (smartphone/cellulare) non è connesso ad internet, ma ad una "cella" (da cui rete cellulare), che funge da "porta di accesso" (gateway) alla rete Internet. Il cellulare non è perciò "connesso ad internet" (a meno, ovviamente di non usare il wifi), ma ad una rete che "media" la connessione ad internet.Una domanda: se un cellulare e' gia' connesso ad internet e un'app ha bisogno di collegarsi alla rete,lo puo' fare?
Ha senso dire che un'app si collega alla rete?
Un Applicazione (client) che ha bisogno di accedere ad un determinato servizio, fa una richiesta al sistema di gestione delle connessioni del cellulare che decide se e come instradare la richiesta (rete cellulare o wireless).
L'applicazione non si collega cmq alla rete, ma ad un servizio interno che, in gergo, fa da "proxy" alla connessione. Questo gli permette, per esempio, di accedere alle informazioni pur non essendo online.
Le applicazioni mobile sono diverse da quelle del pc, e raramente sono concepite per un accesso diretto alla rete. C'è sempre un substrato (più o meno controllabile) che decide se e quando fare accesso alla rete per cercare i dati richiesti dall'applicazione.
Esempio classico? Google Maps, che si basa su una cache locale... quando però si effettua una ricerca di un oggetto al di fuori della cache locale, deve "aggiornarla" per permettere al client di soddisfare la richiesta dell'utente.