本篇文章讲述Qt网络应用方面的编程知识。在开始这部分知识的学习之前,你***已经拥有了一定的网络知识和Qt的编程基础。在下面的教程中我们不会对一个常用的网络名词去进行详细解释,对于不太了解的地方,你可以参考相关书籍。不过,你也没有必要非得先去学习网络教材,而后再学习本部分内容,因为Qt提供了简单明了的接口函数,使得我们这里并没有涉及太多专业的知识。看完教程后,你也许会发现,自己虽然不懂网络,但却可以编写网络应用程序了。我们使用的编程环境为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中的网络编程有了一定了解之后,我们就可以开始下一步的学习了。
【编辑推荐】