0
iPhoneでVoIPモードでソケットを設定しようとしているため、イベントが発生したときにアプリが起動する可能性があります。私はアプリケーションが目を覚まして何かについてメインのWebサービスと話す必要がある場合に限り、ソケットに書き込むシンプルなサーバーを持っています。 CFReadStreamSetProperty() をソケットに接続されたストリームに呼び出すと、常に0が返されているように見えます。誤っていない場合は、ストリームがプロパティ値を認識および/または受け入れないことを意味するFALSEです。前の質問で、この機能はシミュレータでは利用できないので、実際の電話で試したところ、同じ結果が得られました。iOS 4のソケットでVoIPモードを設定する方法
どのようにしてコールが失敗しているのか分かりますか?
コードは以下の通りです:
- (id) init {
NSLog(@"NotificationClient init, host = %@", [self getNotificationHostName]);
CFHostRef notificationHost = CFHostCreateWithName(kCFAllocatorDefault, (CFStringRef)[self getNotificationHostName]);
CFStreamCreatePairWithSocketToCFHost(kCFAllocatorDefault, notificationHost, [self getNotificationPort], &_fromServer, &_toServer);
BOOL status;
status = CFReadStreamOpen(_fromServer);
status = CFReadStreamSetProperty(_fromServer, kCFStreamNetworkServiceType, kCFStreamNetworkServiceTypeVoIP);
NSLog(@"status from setting VoIP mode on socket is %d", status);
status = CFWriteStreamOpen(_toServer);
[self sendMessage:@"STRT" withArgument:@"iPhone"];
[self startReceivingMessages];
return self;
}