J'essaie d'envoyer/recevoir des données via le wifi à une application iphone/ipodtouch à partir d'un serveur tcpip C#. Pour cela j'ai utilisé cocoaAsyncSocket du projet google. Si j'appuie sur un bouton et que j'envoie une requête d'ipod au serveur il renvoie les données demandées (titre de la chanson par exemple) .. je veux savoir chaque seconde quelle chanson joue ... donc du serveur C# j'envoie des intervalles de 1 deuxièmes messages à mon application. Dans mon application dans une minuterie avec l'intervalle de 1 seconde, j'appelle la méthode readDataWithTimeout asyncSocket. Mon problème est qu'après 8-9 secondes cette méthode n'est plus appelée. La connexion au serveur est toujours actif et le serveur C# envoie encore des données ..iPhone/iPod recevoir des messages du serveur C# tcpip utilisant CocoaAsyncSocket
ce que je veux faire est la chose suivante: -> winamp joue une chanson -> serveur C# demande winamp quelles chansons est-il jouer et envoie le titre de la chanson à mon application. -> iphone app reçoit les données et les affiche
Je ne sais pas pourquoi la méthode readDataWithTimeout n'est plus appelée après une courte période de temps..Peut-être parce que le temps court entre les messages envoyés par le serveur C#?
Merci, Sorin
bonjour rob, merci pour la réponse. j'ai pensé à cela parce que par exemple si je lis les données de la socket avec un délai de 30 secondes, si winamp change une chanson dans ce délai mon application ipod recevra ces données avec un délai (de 30 secondes maximum) de sorte qu'il ne pas être mis à jour des données ... comment puis-je faire le processus d'envoi/lecture de et vers ipod au serveur de telle sorte que je ne referai pas la première erreur que j'ai faite? Merci, Sorin –
pour être plus précis ... dans mon application j'ai la situation lorsque le serveur C# doit pousser des données à l'application (données que l'application n'a pas explicitement demandé par pression d'un bouton par exemple) –
L'appel de '-readDataWithTimeout: tag:' bloquera jusqu'à "timeout" secondes en attente de données. Si les données apparaissent avant cela, il publiera '-onSocketDidReadData: withTag:' immédiatement, il ne devrait donc pas y avoir de délai. –