QT开发中文网

qt客户端给服务端发文件例子

下面是一个使用Qt实现的客户端向服务端发送文件的示例代码:

// 客户端
#include <QTcpSocket>
#include <QFile>

void sendFileToServer(const QString& filePath)
{
    QFile file(filePath);
    if (!file.open(QIODevice::ReadOnly)) {
        qDebug() << "无法打开文件:" << file.errorString();
        return;
    }

    QTcpSocket socket;
    socket.connectToHost("服务器IP地址", 12345); // 替换为实际的服务器IP地址和端口号

    if (!socket.waitForConnected()) {
        qDebug() << "无法连接到服务器:" << socket.errorString();
        return;
    }

    // 发送文件名和大小给服务器
    QString fileName = QFileInfo(file.fileName()).fileName();
    qint64 fileSize = file.size();
    QByteArray data = QString("%1:%2").arg(fileName).arg(fileSize).toUtf8();
    socket.write(data);
    
    // 发送文件内容给服务器
    while (!file.atEnd()) {
        QByteArray buffer = file.read(8192); // 每次读取8KB数据
        socket.write(buffer);
        if (!socket.waitForBytesWritten()) {
            qDebug() << "写入套接字错误:" << socket.errorString();
            break;
        }
    }

    // 关闭套接字和文件
    socket.close();
    file.close();
}

这是一个简单的示例,你需要将其中的”服务器IP地址”和端口号替换为实际使用的值。另外,请确保在服务端编写相应代码来接收并处理客户端发送过来的文件数据。

请注意,以上代码只是一个基本示例,实际情况下你可能还需要添加错误处理、进度更新等功能。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://qt.0voice.com/?id=9318

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?