[Résolu] - NSOperation, NSStream et Delegate

skimpyskimpy Membre
novembre 2012 modifié dans API AppKit #1
Edit: Le problème était en fait entre la chaise et le clavier. Une de mes fonctions ne prenait pas en compte un cas particulier (ou plutôt paramétrait une variable à  une mauvaise valeur) ; ça empêchait du coup la lecture du buffer.





Bonjour,



J'essaie d'écrire un programme qui se connecte à  un serveur distant dans le but de récupérer un fichier "segmenté" ; la finalité étant de recomposer le fichier une fois les segments récupérés.



Pour cela, j'ai créé une NSOperation (synchrone, avec une méthode main) dans laquelle j'effectue les tâches suivantes :



- J'instancie 4 objets de ma classe Network. Cette classe contient un NSInputStream et un NSOutputStream et implémente le protocole NSStreamDelegate.

- J'effectue mon setDelegate

- J'ajoute les flux dans la runLoop (scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode])

- J'ouvre les flux

- Jusque là , ça fonctionne, le serveur me répond OK sur les 4 flux ouverts.

- J'envoie ensuite sur chaque flux, la demande de récupération d'un segment : donc le flux1 demande le segment1, le flux2, le segment2, etc.

- Là  encore le serveur me répond OK

- Et puis après c'est aléatoire ... je reçois 1 segment sur 4, ou 0 sur 4 ou 3 sur 4 ... c'est la loterie (tiens y'a l'EuroMillions d'ailleurs ce soir image/smile.png' class='bbc_emoticon' alt=':)' /> )



Auriez-vous une idée d'où peut provenir mon problème ou comment faire pour debugger cette partie ?



Merci

Réponses

  • Le code serait nécessaire image/cheer.gif' class='bbc_emoticon' alt=' <3 ' />
Connectez-vous ou Inscrivez-vous pour répondre.