我已经实现了从 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 地址错误时,NSOutputStream 对象的 WRITE 方法会停止应用程序执行。
const uint8_t *str = (uint8_t *) [strRichiesta cStringUsingEncoding:NSASCIIStringEncoding];
[outputStream write:str maxLength:strlen((char*)str)];
是否可以通过插入超时控制来管理该方法?如果是,我该怎么办?
我认为 NSInputStream 对象的 READ 方法也会出现同样的问题。
有人可以帮我吗?