淺析Qt網(wǎng)絡(luò)
本篇文章講述Qt網(wǎng)絡(luò)應(yīng)用方面的編程知識。在開始這部分知識的學(xué)習(xí)之前,你***已經(jīng)擁有了一定的網(wǎng)絡(luò)知識和Qt的編程基礎(chǔ)。在下面的教程中我們不會對一個常用的網(wǎng)絡(luò)名詞去進行詳細解釋,對于不太了解的地方,你可以參考相關(guān)書籍。不過,你也沒有必要非得先去學(xué)習(xí)網(wǎng)絡(luò)教材,而后再學(xué)習(xí)本部分內(nèi)容,因為Qt提供了簡單明了的接口函數(shù),使得我們這里并沒有涉及太多專業(yè)的知識??赐杲坛毯?,你也許會發(fā)現(xiàn),自己雖然不懂網(wǎng)絡(luò),但卻可以編寫網(wǎng)絡(luò)應(yīng)用程序了。我們使用的編程環(huán)境為Windows下基于Qt 4.6.3的Qt Creator 1.3.1 。
下面我們打開Qt Creator,在Help頁面中我們搜索Qt Network Module 關(guān)鍵字,其內(nèi)容如下圖。
在Qt中提供了網(wǎng)絡(luò)模塊(QtNetwork Module)來用于網(wǎng)絡(luò)程序的開發(fā),可以看到,在這里提供了多個相關(guān)類。有用于FTP編程的QFtp類,用于HTTP編程的QNetworkAccessManager類和QNetworkReply類,用于獲得本機信息的QHostInfo類,用于Tcp編程的QTcpServer類和QTcpSocket類,用于UDP編程的QUdpSocket類,用于網(wǎng)絡(luò)加密的QSslSocket類,用于網(wǎng)絡(luò)代理的QNetworkProxy類等等。
如果你以前就使用過Qt進行網(wǎng)絡(luò)部分編程,或者看過其他教材上相關(guān)內(nèi)容,你可能會問,這里怎么沒有了QHttp類。我們現(xiàn)在搜索QHttp關(guān)鍵字,其內(nèi)容如下。
可以看到這里有一個警告:
This class is obsolete. It is provided to keep old source code working. We strongly advise against using it in new code.
大概意思是:這個類是過時的。它的提供只是為了保證舊的源代碼。我們強烈建議在新代碼中不要使用它。
所以在我們的教程中不會再講解這個類,對于HTTP部分的編程,我們使用QNetworkAccessManager類和QNetworkReply類 。
***需要說明的是:使用這個模塊我們需要在工程文件中添加 QT += network ,然后使用時添加 #include <QtNetwork> 頭文件。
對于網(wǎng)絡(luò)部分相關(guān)的例子,我們可以查看其演示程序。在Windows的開始菜單中選擇Qt Creator的安裝目錄,然后選擇Qt Demo菜單。我們可以在Networking菜單中找到網(wǎng)絡(luò)部分的例子。如下圖。
我們可以運行這些例子查看效果,也可以查看它們的幫助文件,如下圖,點擊Documentation即可。
當我們對Qt中的網(wǎng)絡(luò)編程有了一定了解之后,我們就可以開始下一步的學(xué)習(xí)了。
【編輯推薦】