iPhone SDK – NSStreamEventHasBytesAvailable / appendBytes:
发布时间:2020-12-14 17:17:49 所属栏目:百科 来源:网络整理
导读:免责声明:我是 Xcode / iPhone SDK Noob. 我正在尝试建立与现有服务器的客户端TCP / IP连接.连接后,我希望收到一些有关服务器的数据(版本等). 建立连接后,NSStreamEventOpenCompleted事件将触发,因此我知道已建立连接.接下来,NSStreamEventHasBytesAvailabl
免责声明:我是
Xcode / iPhone SDK Noob.
我正在尝试建立与现有服务器的客户端TCP / IP连接.连接后,我希望收到一些有关服务器的数据(版本等). 建立连接后,NSStreamEventOpenCompleted事件将触发,因此我知道已建立连接.接下来,NSStreamEventHasBytesAvailable事件将触发,我正在执行以下代码.值71(int)存储在len中,我认为这是正确的.但是,行 [data appendBytes:&buffer length:len]; 正在崩溃(我想).没有抛出实际错误,但我确实看到了__TERMINATING_DUE_TO_UNCAUGHT_EXCEPTION__,即使我已经清楚地添加了错误捕获: case NSStreamEventHasBytesAvailable: { NSMutableData *data=[[NSMutableData alloc] init]; uint8_t *buffer[1024]; unsigned int len=0; len=[(NSInputStream *)stream read:buffer maxLength:1024]; if(len>0){ @try{ [data appendBytes:&buffer length:len]; } @catch(NSException *ex){ NSLog(@"Fail: %@",ex); } [statusLabel setText:[data stringValue]]; //[bytesRead setIntValue:[bytesRead intValue]+len]; }else{ NSLog(@"No Buffer"); } break ; } 解决方法
将缓冲区声明为:
uint8_t buffer[1024]; 并附加为: [data appendBytes:buffer length:len]; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |