サーバーとクライアントのファイル名がまったく同じになるように、ファイル名を含むファイルをサーバーに送信する簡単な方法はありますか?ここでQTCPSocketにファイル名を付けてファイルを送信する方法は?
は私のコードは、ファイルの内容とそのファイル名を表して、それを変換します独自のデータ構造を作成することができます
送信者
QString path = QApplication::applicationDirPath()+"/belajardansa.bmp";
QFile inputFile(path);
QByteArray read ;
inputFile.open(QIODevice::ReadOnly);
while(1)
{
read.clear();
read = inputFile.read(32768*8);
qDebug() << "Read : " << read.size();
if(read.size()==0)
break;
qDebug() << "Written : " << socket->write(read);
socket->waitForBytesWritten();
read.clear();
}
inputFile.close();
レシーバー
QTcpSocket* socket = static_cast<QTcpSocket*>(sender());
QBuffer* buffer = buffers.value(socket);
QByteArray read = socket->read(socket->bytesAvailable());
qDebug() << "Read : " << read.size();
QFile file( ???); // what should I put in the bracket???
if(!(file.open(QIODevice::Append)))
{
qDebug("File cannot be opened.");
exit(0);
}
file.write(read);
file.close();
あなたの返信ありがとうございますハンク、 あなたの最初の提案は少し複雑です私はC++とQtの初心者です。データ構造をQByteArrayに変換するためのサンプルコードを教えてください。 2番目の提案について ソケットデータにファイル名またはデータが含まれているかどうかをサーバーが認識できるように、ソケットデータを処理する方法。 –