2010-08-13 4 views
4

BSD 소켓을 사용하여 멀티 멀티 전송 및 수신 (즉, 화상 회의) 설정에 대응하는 iPhone VOIP 앱이 있습니다. 백그라운드에서 들어오는 요청에 응답 할 수 있기를 원하지만 iOS 4 문서에 대해 이해할 수있는 것으로부터 속성을 NSStreamNetworkServiceTypeVoIP로 설정하여 NSStream 개체 (또는 CFRead/WriteStream)에서만 수행 할 수 있습니다. . 이것은 시스템이 UDP BSD 소켓 기반 응용 프로그램이기 때문에 조금 문제가됩니다. 모든 것이 수신되어 단일 UDP 소켓으로 전송됩니다.iOS 4 백그라운드에서 응답하는 VOIP 앱

NSStream을 처리하기 위해 오디오 전송/수신 코어를 다시 작성해야하거나 NSStream과 유사한 방식으로 iOS 4를 처리 할 수있는 방법이 있습니까? NSStream이 이벤트 기반이므로 문제가 될 수 있다고 가정합니다.

응용 프로그램이 백그라운드로 들어갈 때를 감지하고 관련 처리를 통해 데이터를 전달한 다음 임시로 NSStream 객체를 빌드 할 수 있습니까? UDP NSStream을 생성 할 수 있습니까?

아이디어가 있으십니까?

답변

5

CFSocketCreateWithNative()를 사용하여 파일 디스크립터에서 소켓을 만든 다음 CFStreamCreatePairWithSocket()을 사용하여 스트림 쌍을 만들 수 있습니다. UDP 소켓에서 사용할 수 있습니다. 요청하지 않는 한 스트림이 데이터를 읽지 않는다면 FD를 직접 사용하지 않아도 될 수 있습니다.

그래도 행운을 빌어 요!

+0

좋습니다. 작동하는 것 같습니다. 밖으로 나가서 백그라운드에서 오디오 녹음 스트림을 자동으로 시작할 수는 없지만 데이터가 UDP 포트에 도착하면 제어 할 수있게됩니다. – Goz