Ho scritto un programma che si collega a un server su un dato IP utilizzando il protocollo NSStream delineato nella guida alla programmazione del flusso Apple. La connessione e il trasferimento di dati funzionano in modo impeccabile, tuttavia se l'utente specifica l'IP errato e il programma tenta di aprire i flussi, il programma non risponde.iPhone: rilevamento di un errore di connessione con NSStream
Da quello che ho letto, il metodo handleEvent rileva errori di flusso, tuttavia quando controllo la condizione che eventCode == NSStreamEventErrorOccurred, non sembra accadere nulla. Il mio codice di connessione è la seguente:
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];
Qualsiasi idea di come posso specificare un valore di timeout o consentire per un pulsante per attivare la chiusura dei corsi d'acqua, se la connessione non può essere fatta?