Bonjour,
J'ai un souci pour envoyer un fichier en tcp ip sur qtcreator :
Pourriez vous m'aider svp?
la connection tcp ip se fait
le fichier est detecter mais aucune copie du contenu
Merci
send :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 void simpleCommunication::sendFile() { QFile file("D:/tcp ip/QTandTCP-serverQT-ClientQT/QtSendFile/aging.stm"); if (!file.open(QIODevice::ReadOnly)) QMessageBox::information(this, tr("File"),tr("File cannot be opened.")); QByteArray ba; QDataStream out(&ba, QIODevice::WriteOnly); out << (quint16)0; while (!file.atEnd()) { QByteArray line = file.readLine(); QString om(line); out<<om; out.device()->seek(0); out << (quint16)(ba.size() - sizeof(quint16)); } file.close(); QTcpSocket *clientConnection = tcpServer->nextPendingConnection(); connect(clientConnection, SIGNAL(disconnected()), clientConnection, SLOT(deleteLater())); clientConnection->write(ba); clientConnection->disconnectFromHost(); }
Reception :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 void simpleCommunication::readFile() { QDataStream in (tcpSocket); qint64 size; QFile file("D:/tcp ip/QTandTCP-serverQT-ClientQT/QtReceiveFile/aging.stm"); if (!file.open(QIODevice::Append)) QMessageBox::information(this, tr("File"),tr("File cannot be opened.")); QTextStream txtStrmForFile(&file); forever { if (size == 0) { if (tcpSocket->bytesAvailable() < (int)sizeof(quint16)) return; in >> size; } if (tcpSocket->bytesAvailable() < size) return; QByteArray ba; in>>ba; txtStrmForFile<<ba; ba=""; size=0; } file.close(); statusLabel->setText(currentFortune); getFortuneButton->setEnabled(true); }
Partager