您的位置:首页 > 理论基础 > 计算机网络

程序后台保活-接收网络数据

2012-02-01 14:45 204 查看
- (void)createSocket {

socketClient = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);

NSLog(@"socketClient-------%d", socketClient);

if (socketClient >= 0) {

CFReadStreamRef readStream = NULL;

CFStreamCreatePairWithSocket(kCFAllocatorDefault, socketClient, &readStream, nil);

self.inStream = (NSInputStream *)readStream;

[inStream setDelegate:self];

[inStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];

if ([inStream setProperty:NSStreamNetworkServiceTypeVoIP forKey:NSStreamNetworkServiceType]) {

NSLog(@"inStream setVoipProperty OK");

[inStream open];

...(doing something here)

}

}

}

- (void)stream:(NSStream *)aStream handleEvent:(NSStreamEvent)eventCode

{

switch (eventCode) {

case NSStreamEventOpenCompleted: {

NSLog(@"Open Completed");

} break;

case NSStreamEventHasBytesAvailable: {

NSLog(@"Read available");

} break;

case NSStreamEventHasSpaceAvailable: {

NSLog(@"NSStreamEventHasSpaceAvailable");

} break;

case NSStreamEventErrorOccurred: {

NSLog(@"NSStreamEventErrorOccurred");

} break;

case NSStreamEventEndEncountered: {

NSLog(@"NSStreamEventEndEncountered");

} break;

default: {

} break;

}

}

同时设置plist里的Required background modes选项为“App provides Voice over IP services”
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐