QT 网络编程
Qt网络模块提供了允许您编写TCP/IP客户机和服务器的类。它提供了低层类,如QTcpSocket、QTcpServer和QUdpSocket,这些类表示低层网络概念,以及高层类,如QNetworkRequest、QNetworkReply和QNetworkAccessManager,用于使用公共协议执行网络操作。它还提供了实现承载管理的类,如QNetworkConfiguration、QNetworkConfigurationManager和QNetworkSession。
高级网络编程接口(HTTP, FTP)
网络访问API是执行公共网络操作的类的集合。API在使用的特定操作和协议上提供了一个抽象层(例如,通过HTTP获取和发布数据),并且仅为一般概念或高级概念公开类、函数和信号。
网络请求由QNetworkRequest类表示,该类还充当与请求相关的信息的通用容器,例如任何头部信息和使用的加密信息。构造请求对象时指定的URL用于确定请求的协议。目前支持HTTP、FTP和本地文件url进行上传和下载。
网络操作的协调由QNetworkAccessManager类执行。一旦创建了一个请求,这个类就用来分派它并发出信号来报告它的进度。管理器还协调使用cookie在客户机上存储数据、身份验证请求和代理的使用。
对网络请求的应答由QNetworkReply类表示;当发送请求时,QNetworkAccessManager将创建这些文件。QNetworkReply提供的信号可以用于单独监视每个回复,或者开发人员可以选择使用管理器的信号来代替此目的,并放弃对回复的引用。由于QNetworkReply是QIODevice的子类,因此可以同步或异步处理应答;例如阻塞或非阻塞操作。
每个应用程序或库都可以创建一个或多个QNetworkAccessManager实例来处理网络通信。