當前位置:編程學習大全網 - 編程軟體 - Qt網絡編程out和in函數的意思的用法

Qt網絡編程out和in函數的意思的用法

這是聲明的QDataStream 的對象,代碼自己聲明的,並不是預定義的。它是壹個流對象,妳可以查看QDataStream 的文檔,繼承自QIODevice,QDataStream out(&block,QIODevice::WriteOnly);這壹句聲明了out是壹個QDataStream 對象,將聲明QByteArray的實例block最為存儲緩沖區,模式為只寫。 同樣妳去看代碼in是壹個只讀流,將socket中的數據讀出來的功能。in>>的意思是讀出到blocksize中。

和iostream很像,out和in都和網絡模塊沒任何關系。

out是壹個QDataStream 對象,將聲明QByteArray的實例block最為存儲緩沖區,模式為只寫。 同樣妳去看代碼in是壹個只讀流,將socket中的數據讀出來的功能。in>>的意思是讀出到blocksize中。和iostream很像,out和in都和網絡模塊沒任何關系。

為了保證在客戶端能接收到完整的文件,都在數據流的最開始寫入完整文件的大小信息,這樣客戶端就可以根據大小信息來判斷是否接受到了完整的文件。而在 服務器端,在發送數據時就要首先發送實際文件的大小信息,但是,文件的大小壹開始是無法預知的,所以先使用了out<< (quint16) 0;在block的開始添加了壹個quint16大小的空間,也就是兩字節的空間,它用於後面放置文件的大小信息。

然後 out<<tr(“hello Tcp!!!”);輸入實際的文件,這裏是字符串。當文件輸入完成後,在使用out.device()->seek(0);返回到block的開 始,加入實際的文件大小信息,也就是後面的代碼,它是實際文件的大小:out<<(quint16) (block.size() – sizeof(quint16))。

  • 上一篇:三相電流不平衡率計算
  • 下一篇:南京三江學院專業代碼
  • copyright 2024編程學習大全網