누군가가 live555 rtsp 클라이언트를 비동기 적으로 작동시키고 지식 또는 더 나은 ... 코드를 공유하려고했습니다.live555 비동기 rtsp 클라이언트
-2
A
답변
2
live555 API의 동기식 및 비동기식의 주된 차이점은 이제 RTSP 요청에서 처리기를 지정해야한다는 것입니다. DESCRIBE 요청이 완료되면 처리기가 live555 이벤트 루프에서 호출됩니다.
RTSPClient.hh하는 ResponseHandler에서는 다음과 같이 정의된다 :
핸들러가 호출typedef void (responseHandler)(RTSPClient* rtspClient,
int resultCode, char* resultString);
, live555는 당신에게 다음과 같은 정보를 제공합니다 :
명령이 발행 된 RTSP 클라이언트 -> 그러면 다음 RTSP 메소드를 호출 할 수 있습니다.
결과 코드는 성공시 0이고, RTSP 오류 코드가 서버에 의해 반환되면 긍정적이며, 일부 네트워크/소켓 오류가 발생하면 음수입니다.
처리기를 계속 진행하는 방법을 결정하려면이 정보를 사용하십시오. 이 모든 것이 설명 된 RTSPClient.hh를 살펴보십시오.
예. 당신은 완료 한 DESCRIBE 한 번 호출됩니다 (서명 ResponseHandler에의) 어떤 핸들러를 지정해야합니다
unsigned sendDescribeCommand(responseHandler* responseHandler,
Authenticator* authenticator = NULL);
: 이것은 당신이 원하는 때 sendDescribeCommand 메소드를 호출하는 것을 의미한다. 그런 다음 핸들러에서 결과 코드를 기반으로 SETUP (다시 핸들러 지정) 또는 종료 (오류가 발생한 경우) 중 어느 것을 수행할지 결정해야합니다.
jenseb가 제안한 것처럼 openRTSP 클라이언트는 매우 좋은 출발점을 제공합니다.