Мне необходимо передать файл посредством UDP!!!!! (именно UDP, а не FTP). написал вот что
функция передачи:
C++ (Qt)
void SendFile_Widget::SendFile()
{
QString fil=QFileDialog::getOpenFileName(this, QString::fromLocal8Bit("1"), QString::fromLocal8Bit("c:\\"), 0,0,0);
if(fil.isEmpty()) return;
QStringList lt=fil.split('/');
QString nam_file=lt.takeLast();
QByteArray datf;
QFile fil_out(fil);
QDataStream out(&datf, QIODevice::WriteOnly);
fil_out.open(QIODevice::ReadOnly);
QString fils(fil_out.readAll());
out<<nam_file<<fils;
tb->setText(fils);
socket_out->writeDatagram(datf, con_host.getIP(cb->currentText()), 1012);
слот приема:
C++ (Qt)
void SendFile_Widget::InboxFile()
{
QByteArray dat;
QHostAddress* ha=new QHostAddress;
quint16* port=new quint16;
do
{
dat.resize(socket_in->pendingDatagramSize());
socket_in->readDatagram(dat.data(), dat.size(), ha, port);
}while(socket_in->hasPendingDatagrams());
QString mess;
QString nam_file;
QDataStream in(&dat, QIODevice::ReadOnly);
in>>nam_file>>mess;
QByteArray datf;
QFile newfil(nam_file);
QDataStream inf(&datf, QIODevice::WriteOnly);
newfil.open(QIODevice::WriteOnly);
inf<<mess;
newfil.write(datf);
QMessageBox::warning(0, QString::fromLocal8Bit("ВНИМАНИЕ"), QString::fromLocal8Bit("Пришел файл!"), QMessageBox::Ok);
};
но результат записывается в бинарном виде и нормально соответственно не открывается.
Посоветуйте пожалуйста, как правильно результат записать в небинарном виде?