淺析Qt網絡
本篇文章講述Qt網絡應用方面的編程知識。在開始這部分知識的學習之前,你***已經擁有了一定的網絡知識和Qt的編程基礎。在下面的教程中我們不會對一個常用的網絡名詞去進行詳細解釋,對于不太了解的地方,你可以參考相關書籍。不過,你也沒有必要非得先去學習網絡教材,而后再學習本部分內容,因為Qt提供了簡單明了的接口函數,使得我們這里并沒有涉及太多專業的知識??赐杲坛毯螅阋苍S會發現,自己雖然不懂網絡,但卻可以編寫網絡應用程序了。我們使用的編程環境為Windows下基于Qt 4.6.3的Qt Creator 1.3.1 。
下面我們打開Qt Creator,在Help頁面中我們搜索Qt Network Module 關鍵字,其內容如下圖。
在Qt中提供了網絡模塊(QtNetwork Module)來用于網絡程序的開發,可以看到,在這里提供了多個相關類。有用于FTP編程的QFtp類,用于HTTP編程的QNetworkAccessManager類和QNetworkReply類,用于獲得本機信息的QHostInfo類,用于Tcp編程的QTcpServer類和QTcpSocket類,用于UDP編程的QUdpSocket類,用于網絡加密的QSslSocket類,用于網絡代理的QNetworkProxy類等等。
如果你以前就使用過Qt進行網絡部分編程,或者看過其他教材上相關內容,你可能會問,這里怎么沒有了QHttp類。我們現在搜索QHttp關鍵字,其內容如下。
可以看到這里有一個警告:
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> 頭文件。
對于網絡部分相關的例子,我們可以查看其演示程序。在Windows的開始菜單中選擇Qt Creator的安裝目錄,然后選擇Qt Demo菜單。我們可以在Networking菜單中找到網絡部分的例子。如下圖。
我們可以運行這些例子查看效果,也可以查看它們的幫助文件,如下圖,點擊Documentation即可。
當我們對Qt中的網絡編程有了一定了解之后,我們就可以開始下一步的學習了。
【編輯推薦】