qt怎么通过TCP传输文件呢,帮我写一下代码
时间: 2024-05-15 13:16:09 浏览: 96
以下是一个简单的示例代码,演示了如何使用Qt的TCP套接字传输文件:
```
// Client端代码
QTcpSocket socket;
socket.connectToHost("127.0.0.1", 1234); // 连接到服务器
if (socket.waitForConnected()) {
QFile file("test.txt");
if (file.open(QIODevice::ReadOnly)) {
QByteArray fileData = file.readAll();
// 发送文件数据
socket.write(fileData);
socket.waitForBytesWritten();
file.close();
}
}
socket.disconnectFromHost();
// Server端代码
QTcpServer server;
server.listen(QHostAddress::Any, 1234); // 监听端口
if (server.isListening()) {
while (server.waitForNewConnection()) {
QTcpSocket* socket = server.nextPendingConnection();
if (socket) {
QFile file("test.txt");
if (file.open(QIODevice::WriteOnly)) {
// 接收文件数据
QByteArray fileData = socket->readAll();
file.write(fileData);
file.close();
}
socket->disconnectFromHost();
socket->deleteLater();
}
}
}
```
在这个例子中,客户端和服务器都使用了QTcpSocket来进行通信。客户端首先连接到服务器,然后打开要传输的文件,读取文件数据并将其发送到服务器。服务器接收到文件数据后,打开文件并将数据写入文件中。当传输完成后,客户端和服务器都会断开连接。
阅读全文