Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Ввод/Вывод, Сеть. Межпроцессное взаимодействие _ Передача файла по TCP

Автор: tino 2.11.2007, 12:02

Нужно передать файл по сети, а затем принять его.
Как это сделать?

Автор: ViGOur 2.11.2007, 12:09

Передача и принятие файла по сети, почти ничем не отличается от обычной работы с файлом, чтение-запись.
Если ты читал http://www.crossplatform.ru/documentation/qtdoc4.3/qtnetwork.php, то мог заметить, что:

Цитата
Так как QTcpSocket унаследован от QIODevice, можно использовать его и с QTextStream и QDataStream. При чтении из QTcpSocket, нужно удостовериться, что доступно достаточно данных, это можно сделать вызова QTcpSocket::bytesAvailable().

Автор: tino 2.11.2007, 12:16

А пример можно?

Автор: ViGOur 2.11.2007, 12:26

Вот простой пример:

// Записываем данные в сокет
QDataStream out( &hWriteSocket);
out << "the answer is";
out << (qint32)42;

// Читаем данные из сокета
QDataStream in( &hReadSocket);
QString str;
qint32 a;
in >> str >> a; // получаем "the answer is" и 42
Прочитал кусок файла и записал его в сокет как в примере, возникло событие получения данных, прочитал их из сокета и т.д.

Автор: tino 2.11.2007, 12:31

Хе-хеЭ, мог бы и не спрашивать, сам разобрался бы... :)

Спасибо.

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)