首页| 论坛| 消息

标题:【转帖】QT网络模块
作者:XChinux
日期:2005-06-30 18:47
内容:

QT网络模块- -转自:http://wendy924.blogchina.com/1419192.html

网络模块这个模块是 Qt 企业版 的一部分。

简介
使用 QUrlOperator 和 QNetworkOperation 实现网络协议的多种操作
实现自定义网络协议
错误处理
简介
使用网络模块提供的类,可以更容易、便捷地构建网络应用程序。为了便于理解,我们将Qt网络模块提供的类分为三个集合。第一个集合中为基本的网络类,包括: QSocket, QServerSocket, QDns, 等。使用这些类实现 TCP/IP 套接字编程将更为便捷。第二个集合中,QNetworkProtocol和QNetworkOperation ,用于实现网络的抽象层;QUrlOperator 用于实现特定协议的操作。最后是一些“被动”类。 比如 QUrl 和 QUrlInfo 等实现 URL 解析或类似功能的类。
第一个集合 (QSocket, QServerSocket, QDns, QFtp, 等) 包含在 Qt 的“网络模块”中。
QSocket 等类并直接关联到QNetwork等类上面,而是用于实现网络协议,这些网路协议才“直接地”关联到 QNetwork等类上。比如:QFtp class (实现 FTP 协议) “用到”了 QSockets(关联关系)。但是实现协议并非一定要“用到” QSockets ,比如:QLocalFs (一个通过网络协议的方式访问本地文件系统的协议的实现) 用到了QDir 类,而不是 QSocket。使用 QNetworkProtocols你可以实现任何一个符合层次结构且可通过 URL 访问的协议。举个例子,你可以实现一个通过串口连接读取数字照相机里图片的协议。

通过 QUrlOperator and QNetworkOperation 实现网络协议的多种操作
仅仅是使用现有的网络协议的实现,解析 URL 并完成操作非常的简单。比如:从一个 FTP 服务器上下载文件到本地可以通过下面的代码实现:

QUrlOperator op;
op.copy( "ftp://ftp.trolltech.com/qt/source/qt-2.1.0.tar.gz", "file:/tmp", FALSE );
只有这些代码就够了!当然还必须有一个可用的 FTP Server。 详见后面的内容。
你还可以实现像创建目录、删除文件、重命名等这样的功能。比如:通过一个私有帐号访问 FTP 服务器并创建一个目录:

QUrlOperator op( "ftp://username:password@host.domain.no/home/username" );
op.mkdir( "New Directory" );
还是那样的简单。所有可使用的功能,请查看 QUrl ..

回复 发表
主题 版块