나는 다음과 같이 QScopedPointer에 QAbstractSocket를 저장 관련 일부가 Qt4.8.3를 사용하여 블랙 베리 플레이 북을위한 네트워크 기반의 응용 프로그램을 개발하고 는 SSL 경로를 아래로 갈 때 (비 SSL 작동 미세!)QScopedPointer 내에 QSslSocket을 저장하려고 할 때 bps_remove_fd 오류가 발생하는 이유는 무엇입니까?</p> 내 구현에서 <pre><code>QScopedPointer<QAbstractSocket> nntp; </code></pre> <p>, 나는 QSslSocket 또는 중 하나를 저장 :
if(ssl) {
nntp.reset(new QSslSocket(this));
(dynamic_cast<QSslSocket*>(nntp.data())))->connectToHostEncrypted(server, port);
} else {
nntp.reset(new QTcpSocket(this));
nntp->connectToHost(server, port);
}
QTcpSocket (둘은 QAbstractSocket에서 상속) 즉, conenction 암호화 할 것인지 여부에 따라, 나는 다음과 같은 실행으로 끝날 시간 오류 :
가상 무효 QEventDispatcherBlackberry :: unregisterSocketNotifier (QSocketNotifier *) bps_remove_fd()는 오류가 오류 설명과 다른 플랫폼에서 코드가 예상대로 작동한다는 사실 주어진 아마 블랙 베리 관련이
19 실패 (Mac 및 Linux에서 테스트) . (숫자 19는 파일 설명자를 나타냅니다.
이 오류가 나타나는 이유와 해결책은 무엇입니까?
감사합니다.
Ben.
편집 : 방금 포인터를 사용하는 대신 단일 QSslSocket을 가질 수 있고 비 SSL 모드 일 때 일반 QTcpSocket으로 처리 할 수 있습니다. 훨씬 쉽습니다. 그러나 여전히 위의 오류에 대한 이유를 알고 싶습니다
감사합니다 Morwenn - 정말 포괄적입니다! 편집에서 언급했듯이 QSslSocket을 사용하여 QScopedPointer에 QAbstractPointer를 저장하고 SSL 요구 사항에 따라 다시 설정하는 대신 QSslSocket을 사용하여 QTcpSocket으로 처리 할 수 있다는 사실을 알게되었습니다. 이것은 위의 문제를 완화하는 것으로 보인다 –
@BenJ 듣기 좋은데 :) – Morwenn