Pregunta

He implementado un servidor cliente que se transfiere desde la aplicación de escritorio de Windows a la aplicación para iPhone. Transfiero datos utilizando NSSTREAM en modo de votación (sincrónico).

CFReadStreamRef readStream;
CFWriteStreamRef writeStream;

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

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

[inputStream open];
[outputStream open];

Todo funciona bien, pero cuando intento conectar un servidor inexistente o un servidor desconectado o el número de puerto/dirección IP es incorrecto, el método de escritura del objeto nsoutputStream detiene la ejecución de la aplicación.

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

¿Es posible administrar el método insertando el control de tiempo de espera? Si es así, ¿cómo puedo hacerlo?

Creo que el mismo problema ocurre también con el método de lectura del objeto NSInputStream.

¿Alguien podría ayudarme, por favor?

No hay solución correcta

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top