介绍

本文将介绍如何使用Qt实现简易的文件传输功能,通过Tcp协议实现客户端和服务器之间的文件传输。该功能可以应用于各种需要文件传输的场景,例如客户端与服务器之间的文件传输,或者两台计算机之间的文件传输。

实现步骤

  1. 创建一个Tcp服务器,监听特定端口,并在有客户端连接时进行响应。
  2. 创建一个Tcp客户端,连接到服务器,并发送文件。
  3. 服务器接收到文件,并保存到本地。
  4. 客户端和服务器断开连接。

下面是具体实现过程的代码:

// 服务端代码
QTcpServer server;
connect(&;server, &;QTcpServer::newConnection, [&;]() {
    QTcpSocket *socket = server.nextPendingConnection();
    QFile file("file.txt");
    if (file.open(QIODevice::WriteOnly)) {
        while (socket->;bytesAvailable() >; 0) {
            QByteArray data = socket->;read(1024);
            file.write(data);
        }
        file.close();
    }
    socket->;disconnectFromHost();
    socket->;deleteLater();
});

server.listen(QHostAddress::Any, 8888);

// 客户端代码
QTcpSocket socket;
socket.connectToHost(QHostAddress("127.0.0.1"), 8888);
QFile file("file.txt");
if (file.open(QIODevice::ReadOnly)) {
    while (!file.atEnd()) {
        QByteArray data = file.read(1024);
        socket.write(data);
    }
    file.close();
}
socket.disconnectFromHost();