Domanda

Ho implementato un trasferimento di server client dall'applicazione desktop Windows all'app per iPhone. Trasferisco i dati utilizzando NSStream in modalità polling (sincrona).

CFReadStreamRef readStream;
CFWriteStreamRef writeStream;

CFStreamCreatePairWithSocketToHost(NULL, (CFStringRef)urlStr, portNo, &readStream, &writeStream);

inputStream = (NSInputStream *)readStream;
outputStream = (NSOutputStream *)writeStream;

[inputStream open];
[outputStream open];

Tutto funziona bene, ma quando provo a collegare un server inesistente o un server disconnesso o il numero di porta/indirizzo IP è sbagliato, il metodo di scrittura dell'oggetto NSOutputStream, interrompe l'esecuzione dell'applicazione.

const uint8_t *str = (uint8_t *) [strRichiesta cStringUsingEncoding:NSASCIIStringEncoding];
[outputStream write:str maxLength:strlen((char*)str)]; 

È possibile gestire il metodo inserendo il controllo del timeout? Se sì, come posso fare?

Penso che lo stesso problema si verifichi anche con il metodo di lettura dell'oggetto NSInputStream.

Qualcuno mi potrebbe aiutare per favore?

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top