2013-08-12 4 views
0

나는 그러나 그것으로 차단을 해제 것으로 보인다 차단 모델 내 클라이언트가waitForReadyRead가 빈 문자열을 반환합니다. 왜 차단하지 않습니까?

QByteArray tick_stream; 
clntSocket->waitForReadyRead(-1); 
tick_stream = clntSocket->read(800); 

가 지금은 소켓에서 읽을 수있는 데이터가있을 때 clntSocket->waitForReadyRead(); 만 차단을 해제한다고 생각 다음과 같이 데이터가 수신 코드를 currenlty 자체 및 tick_stream 무엇이 잘못 될 수 suggetsions 비어 무엇입니까?

답변

2

오류가 발생하면 메서드가 즉시 오류로 반환 될 수 있으므로 오류를 확인해야합니다. QtDoc 가입일

:

부울 QIODevice :: waitForReadyRead INT (밀리 초) [가상]

블록 새로운 데이터를 읽을 수 있고 readyRead() 신호를 방출하거나 밀리까지 때까지 밀리 초가 경과했습니다. msecs가 -1이면이 함수는 시간 초과되지 않습니다.

새 데이터를 읽을 수 있으면 true를 반환하고 그렇지 않으면 false를 반환합니다. 그렇지 않으면 false를 반환합니다 (작업 시간이 초과되거나 오류가 발생한 경우).

+0

예 false를 반환합니다. 어떻게 오류 유형을 감지하거나 오류 메시지를 추출합니까? – Rajeshwar

+0

Qt에 익숙하지 않은 문서를 참고하십시오. 확실히 뭔가 있습니다. –

+0

실제로 어떤 일이 일어 났습니까? –