Je suis en train de tester une application qui se connecte via un socket TCP asynchrone à un serveur C# et envoie 1 octet toutes les 30 secondes (implémentation d'un signal de présence). Après environ une heure plus tard, l'application avait envoyé 132 paquets (d'un octet) au serveur, les paquets ont été reçus ok. L'application iPhone est connectée une fois au serveur et ensuite les paquets sont envoyés via la connexion ouverte (le serveur n'envoie rien). Je l'ai fait pour mesurer la bande passante utilisée. Je suis donc allé à I Téléphone> Paramètres> Général> Utilisation et il a mesuré 366KB et 344KB vers le bas (j'avais réinitialisé les statistiques avant le test). Il n'y a pas d'autre application se connectant au réseau installé sur le téléphone et j'ai essayé cela environ 5 fois avec des résultats similaires.iPhone sdk socket - bande passante utilisée
Est-ce naturel? Je n'ai envoyé que 132 octets, mais la bande passante utilisée était d'environ 710 kilo-octets (comme 7.000 de plus). Y a-t-il autant de surcoût de bande passante du protocole TCP/IP? Je suppose que je vais avoir les pires résultats avec une implémentation Http polling, cause des entêtes http.
Eh bien, j'ai supprimé le compte Gmail que j'avais sur le téléphone. Pour autant que je sache, il n'y a rien d'autre. Et il y a un modèle d'environ 5 kb par paquet, donc si je laisse l'application fonctionner pendant environ 90 secondes (3 paquets de 1byte envoyés), l'appareil ajoute 18 ko à la bande passante utilisée ... – Plato
encore une chose, sur le C# côté serveur, il y a nod32 en cours d'exécution, qui signale que le tcpListener (application serveur C#) a reçu un trafic entrant de 132 octets! Il semble donc que le côté serveur mesure la bande passante utilisée correctement, mais pas Iphone. Le problème est que si le fournisseur de services mobiles mesure en tant qu'appareil Iphone, le coût pour le client pourrait être important. – Plato
Wow, c'est beaucoup de frais généraux pour 1 octet. Vous pouvez en savoir plus sur la surcharge de bande passante en établissant une ligne de base et plusieurs tailles de paquets différentes. (1) Exécutez votre application pendant 90 minutes, mesurez la bande passante, mais désactivez l'envoi de votre octet, cela vous donnera une utilisation de base des processus en arrière-plan, (2) même test que votre octet sauf 1k octets, (3) encore sauf envoyer 10k octets. – progrmr