입니다. 저는 네트워크 프로그래밍에 새로운 것이므로, 이것이 완전한 초보자 용 질문이 아니기를 바랍니다. 우리는 포함하는 16 비트 정수를위한 공간을 예약 우리 QByteArray의 시작에서클라이언트에 대한 이점, 서버가 보낸 패키지의 크기는
QByteArray block;
QDataStream out(&block, QIODevice::WriteOnly);
out << (quint16)0;
out << "..."; // just some text
out.device()->seek(0);
out << (quint16)(block.size() - sizeof(quint16));
:
나는 약간의 서버를 구축하는 방법을 Qt는-홈페이지에서 튜토리얼을 읽고, 나는 this 발견 우리가 전송하는 데이터 블록의 총 크기. [우리는 임의의 행운으로 계속해서 스트리밍합니다.] 그런 다음 QByteArray의 시작 부분으로 되돌아 가서 예약 된 16 비트 정수 값을 배열의 전체 크기로 덮어 씁니다. 이렇게하면 클라이언트가 전체 패킷을 읽기 전에 얼마나 많은 데이터를 기대할 수 있는지 확인할 수 있습니다.
그래서이 절차의 장점은 무엇입니까? 네가 그렇게하지 않으면 어떻게 될까? 어쩌면 작은 예제를 추가 할 수도 있습니다.