1
我有一個應用程序是套接字服務器應用程序。我想在iOS上使用它(而不是應用商店)。我試圖按照它在蘋果文檔中提到的方式綁定我的C++程序的本地套接字,但是沒有發生任何事情。iOS Voip喚醒呼叫
該C++程序正在使用的信號/插槽QTcpServer既可。我有這樣的代碼:
driver = ProxyDriver::getInstance(5150);
NSLog(@"Socket descriptor %i" , driver->socketDescriptor());
CFReadStreamRef readStream;
CFWriteStreamRef writeStream;
CFStreamCreatePairWithSocket (kCFAllocatorDefault, driver->socketDescriptor(), &readStream, &writeStream);
CFReadStreamSetProperty(readStream, kCFStreamNetworkServiceType, kCFStreamNetworkServiceTypeVoIP);
CFWriteStreamSetProperty(writeStream, kCFStreamNetworkServiceType, kCFStreamNetworkServiceTypeVoIP);
driver-> socketDescriptor()返回我的QTcpServer的偵聽套接字的int。
我發佈的代碼位於我的應用程序委託「applicationDidEnterBackground」中,並且已在我的.plist文件中啓用「IP語音」。
但是,它似乎很奇怪 - 如果我在應用程序在後臺時對監聽套接字的IP地址執行netcat - 它不會喚醒並調用我在我的定義中的「接受連接」 Qt應用程序。但是,只要我將應用程序帶回前臺,該插槽就會被調用。
我在做什麼錯?在創建流對之前,我是否需要先連接套接字?