在对我的 iOS 6 应用程序进行了一些更改(实际上都与网络无关)后,我的流事件处理程序开始遇到一个奇怪的错误。这在 iOS 5 和 iOS 6 上都发生,但在 iOS 5 上更频繁。此错误每 50 秒左右发生一次,我的流事件处理程序遇到NSStreamEventErrorOccurred
. 错误信息如下:
Application[6370:707] Error Occured with stream [<__NSCFInputStream: 0xd622ab0>]
Application[6370:707] Stream Status: 7
Application[6370:707] Error Code: 57
Application[6370:707] Error Desc: The operation couldn’t be completed. Socket is not connected
Application[6370:707] Error Reason: Socket is not connected
Application[6370:707] Error Domain: NSPOSIXErrorDomain
在此错误之后,处理程序将遇到几个“对等连接重置”TCP 错误,我认为这是由服务器发送 RST 数据包引起的。是否还有其他可能导致此错误的情况?我的应用程序正在连接到在 AP 模式下广播 wifi 网络的硬件设备。
以下是我的NSStreamEventHasBytesAvailable
事件代码。
case NSStreamEventHasBytesAvailable: {
NSLog(@"Stream has bytes available! Stream is %@", stream);
if (stream == iStream)
{
@try {
uint8_t buf[2048];
unsigned int len = 0;
len = [(NSInputStream *)stream read:buf maxLength:2048];
if(len) {
NSString *incomingData = [[NSString alloc] initWithBytes:(const void *)buf length:len encoding:NSUTF8StringEncoding];
}
} catch (NSException *e) {
NSLog(@"Caught Exception: %@",e);
}
}
break;
}
请根据需要索取信息,谢谢您的时间!