天天看點

[Qt教程] 第31篇 網絡(一)Qt網絡程式設計簡介 [Qt教程] 第31篇 網絡(一)Qt網絡程式設計簡介

<a target="_blank" href="http://bbs.qter.org/forum.php?mod=viewthread&amp;tid=576">樓主</a>

[Qt教程] 第31篇 網絡(一)Qt網絡程式設計簡介 [Qt教程] 第31篇 網絡(一)Qt網絡程式設計簡介

 發表于 2013-8-28 17:04:17 | 檢視:

515| 回複: 0

qt網絡程式設計簡介

版權聲明

該文章原創于作者yafeilinux,轉載請注明出處!

導語

從這一節開始我們講述qt網絡應用方面的程式設計知識。在開始這部分知識的學習之前,大家最好已經擁有了一定的網絡知識和qt的程式設計基礎。在後面的教程中我們不會對一個常用的網絡名詞進行詳細的解釋,對于不太了解的地方,大家可以參考相關書籍。

不過,大家也沒有必要非得先去學習網絡專業知識,而後再學習本部分内容,因為qt提供了簡單明了的接口函數,使得這裡并不需要了解太多專業的知識。看完教程後,你也許會發現,自己雖然不懂網絡,但卻可以編寫網絡應用程式了。

環境:windows xp + qt 4.8.5+qt creator 2.8.0

目錄

一、了解qt中的網絡程式設計

二、檢視網絡部分的例子

正文

1.首先我們打開qt creator,進入幫助模式,然後在索引中查找:network programming關鍵字。這裡詳細介紹了qt中網絡程式設計的相關内容。如下圖所示。

[Qt教程] 第31篇 網絡(一)Qt網絡程式設計簡介 [Qt教程] 第31篇 網絡(一)Qt網絡程式設計簡介

qt提供了qtnetwork子產品來進行網絡程式設計。該子產品提供了諸如qftp等類來實作特定的應用層協定;有較低層次的類,例如qtcpsocket、qtcpserver和qudpsocket等來表示低層的網絡概念;還有高層次的類,例如qnetworkrequest、qnetworkreply和qnetworkaccessmanager使用相同的協定來執行網絡操作;也提供了qnetworkconfiguration、qnetworkconfigurationmanager和qnetworksession等類來實作負載管理。

2.在文檔的後面提供了qt中用于網絡程式設計的類的清單。如下圖所示。

[Qt教程] 第31篇 網絡(一)Qt網絡程式設計簡介 [Qt教程] 第31篇 網絡(一)Qt網絡程式設計簡介

3. 如果大家以前就使用過qt進行網絡部分程式設計,或者看過其他教材上相關内容,你可能會問,這裡怎麼沒有了qhttp類。我們現在搜尋qhttp關鍵字,其内容如下。

[Qt教程] 第31篇 網絡(一)Qt網絡程式設計簡介 [Qt教程] 第31篇 網絡(一)Qt網絡程式設計簡介

可以看到這裡有一個警告:

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自帶的示範程式檢視。就是開始菜單中qt安裝目錄下example and

demos程式,網絡程式設計例子在networking分類中。如下圖所示。

[Qt教程] 第31篇 網絡(一)Qt網絡程式設計簡介 [Qt教程] 第31篇 網絡(一)Qt網絡程式設計簡介

進入networking分類,如下圖所示。

[Qt教程] 第31篇 網絡(一)Qt網絡程式設計簡介 [Qt教程] 第31篇 網絡(一)Qt網絡程式設計簡介

最後要說明的是:如果要使用qtnetwork子產品中的類,需要在項目檔案中添加qt+= network一行代碼。

結語

後面的教程中我們将對qt網絡程式設計部分的知識點分别進行講解,對qt中網絡程式設計内容有了初步了解以後,我們就開始下一步的學習吧。

繼續閱讀