J'ai écrit un programme qui se connecte à un serveur sur une adresse IP donnée en utilisant le protocole NSStream décrit dans le guide de programmation de flux d'Apple. La connexion et le transfert des données fonctionnent parfaitement, mais si l'utilisateur spécifie une adresse IP incorrecte et que le programme tente d'ouvrir les flux, le programme ne répond plus. D'après ce que j'ai lu, la méthode handleEvent détecte les erreurs de flux, mais lorsque je vérifie la condition que eventCode == NSStreamEventErrorOccurred, rien ne semble se passer. Mon code de connexion est la suivante:iPhone: rattraper une erreur de connexion avec NSStream
NSString *hostString = ipField.text;
CFReadStreamRef readStream;
CFWriteStreamRef writeStream;
CFStreamCreatePairWithSocketToHost(NULL, (CFStringRef)hostString, 10001, &readStream, &writeStream);
inputStream = (NSInputStream *)readStream;
outputStream = (NSOutputStream *)writeStream;
[inputStream setDelegate:self];
[outputStream setDelegate:self];
[inputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[outputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[inputStream open];
[outputStream open];
Toute idée de comment je peux spécifier une valeur de délai d'attente ou permettre un bouton pour déclencher la fermeture des cours d'eau si une connexion ne peut pas être fait?