Я реализовал перенос клиент-сервер из настольного приложения Windows в приложение для iPhone. Передаю данные с помощью NSStream в режиме опроса (синхронно).
CFReadStreamRef readStream;
CFWriteStreamRef writeStream;
CFStreamCreatePairWithSocketToHost(NULL, (CFStringRef)urlStr, portNo, &readStream, &writeStream);
inputStream = (NSInputStream *)readStream;
outputStream = (NSOutputStream *)writeStream;
[inputStream open];
[outputStream open];
Все работает нормально, но когда я пытаюсь подключить несуществующий сервер или отключенный сервер, или номер порта / IP-адрес неверен, метод WRITE объекта NSOutputStream останавливает выполнение приложения.
const uint8_t *str = (uint8_t *) [strRichiesta cStringUsingEncoding:NSASCIIStringEncoding];
[outputStream write:str maxLength:strlen((char*)str)];
Можно ли управлять методом, вставив элемент управления таймаутом? Если да, то как мне это сделать?
Я думаю, что такая же проблема возникает и с методом READ объекта NSInputStream.
Кто-нибудь может мне помочь, пожалуйста?