第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Qt網(wǎng)絡(luò)編程out和in函數(shù)的意思的用法 ?

Qt網(wǎng)絡(luò)編程out和in函數(shù)的意思的用法 ?

Git
犯罪嫌疑人X 2019-02-03 09:05:39
現(xiàn)在學(xué)習(xí)Qt的網(wǎng)絡(luò)編程,下載了一個實例。有代碼看不懂QDataStreamout(&block,QIODevice::WriteOnly);out<<(quint16)0;out<<tr("helloTcp!!!");out.device()->seek(0);其中的 out 是什么意思,類似C++輸出的cout函數(shù)嗎?還有QDataStream in (tcpSocket);in>>blockSize; 其中的in類似C++輸入的cout函數(shù)嗎?in>>blockSize; 這句話是把什么數(shù)據(jù)寫入blockSize呢,不是得有兩個參數(shù)嗎?
查看完整描述

3 回答

?
守候你守候我

TA貢獻1802條經(jīng)驗 獲得超10個贊

out是一個QDataStream 對象,將聲明QByteArray的實例block最為存儲緩沖區(qū),模式為只寫。 同樣你去看代碼in是一個只讀流,將socket中的數(shù)據(jù)讀出來的功能。in>>的意思是讀出到blocksize中。和iostream很像,out和in都和網(wǎng)絡(luò)模塊沒任何關(guān)系。
為了保證在客戶端能接收到完整的文件,都在數(shù)據(jù)流的最開始寫入完整文件的大小信息,這樣客戶端就可以根據(jù)大小信息來判斷是否接受到了完整的文件。而在 服務(wù)器端,在發(fā)送數(shù)據(jù)時就要首先發(fā)送實際文件的大小信息,但是,文件的大小一開始是無法預(yù)知的,所以先使用了out<< (quint16) 0;在block的開始添加了一個quint16大小的空間,也就是兩字節(jié)的空間,它用于后面放置文件的大小信息。
然后 out<<tr(“hello Tcp!!!”);輸入實際的文件,這里是字符串。當文件輸入完成后,在使用out.device()->seek(0);返回到block的開 始,加入實際的文件大小信息,也就是后面的代碼,它是實際文件的大?。簅ut<<(quint16) (block.size() – sizeof(quint16));

查看完整回答
反對 回復(fù) 2019-03-14
?
鳳凰求蠱

TA貢獻1825條經(jīng)驗 獲得超4個贊

你把代碼貼全好不好啊,這是聲明的QDataStream 的對象,代碼自己聲明的,并不是預(yù)定義的。它是一個流對象,你可以查看QDataStream 的文檔,繼承自QIODevice,QDataStream out(&block,QIODevice::WriteOnly);這一句聲明了out是一個QDataStream 對象,將聲明QByteArray的實例block最為存儲緩沖區(qū),模式為只寫。 同樣你去看代碼in是一個只讀流,將socket中的數(shù)據(jù)讀出來的功能。in>>的意思是讀出到blocksize中。
和iostream很像,out和in都和網(wǎng)絡(luò)模塊沒任何關(guān)系。

查看完整回答
反對 回復(fù) 2019-03-14
?
慕斯王

TA貢獻1864條經(jīng)驗 獲得超2個贊

out 就是輸出,即發(fā)送


in 是輸入 , 即接收

接收 緩存,不會有最終的數(shù)據(jù)的大小的,只會有當前緩存的數(shù)據(jù)的大小。

查看完整回答
反對 回復(fù) 2019-03-14
  • 3 回答
  • 0 關(guān)注
  • 871 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號