Russian Qt Forum

Qt => Работа с сетью => Тема начата: serega-5508 от Октябрь 18, 2011, 20:28



Название: POP 3
Отправлено: serega-5508 от Октябрь 18, 2011, 20:28
как на Qt написать POP3 клиент??? с чего начать?? какой принцип?


Название: Re: POP 3
Отправлено: neversleep от Октябрь 19, 2011, 05:38
Насчёт готовой реализации POP3 клиентов в Qt не знаю, поэтому думаю начинать надо отсюда (http://www.google.ru/#sclient=psy-ab&hl=ru&newwindow=1&source=hp&q=pop3+rfc&pbx=1&oq=pop3+rfc&aq=f&aqi=g2&aql=1&gs_sm=e&gs_upl=136963l136963l9l137148l1l0l1l0l1l0l0l0ll0l0&bav=on.2,or.r_gc.r_pw.,cf.osb&fp=722f8ceee399dfd&biw=1280&bih=823) далее сюда (http://rfc2.ru/1939.rfc).


Название: Re: POP 3
Отправлено: lesav от Октябрь 19, 2011, 08:00
Можно попробовать переписать вот этот класс (http://www.codeproject.com/KB/IP/win32_pop3.aspx)

В Pop3.h добавить
Код
C
#define BOOL bool
#define CString QString
#define CStringList QStringList
#define IsEmpty isEmpty
#define Mid mid

И потихонку, меланхолично, портировать его в Qt


Название: Re: POP 3
Отправлено: serega-5508 от Ноябрь 12, 2011, 00:20
ну вот я устанавливаю соединение с сервером:
Код:
tcpSocket->connectToHost("pop3.mail.ru",110);
if(tcpSocket->waitForConnected(5000))
        ui->statusBar->showMessage("Connect to server...",5000);

    if(tcpSocket->isOpen())
        ui->statusBar->showMessage("OK",5000);


вроде соединение устанавливает. а как дальше отправить запрос команд на сервер????
делаю так:
Код:
//слот отправки сообщения
tcpSocket->write(ui->lineEdit->text().toLatin1());
// в lineEdit ввожу команду серверу. к примеру USER serega7@mail.ru

а дальше есть
Код:
connect(ui->sendMessage,SIGNAL(clicked()),this,SLOT(updateView()));// обработка ответа
вот как реализована:
Код:
QString line = QString::fromAscii(tcpSocket->readAll());
        ui->textEdit->setText(line);

но у меня не получает никакого ответа от сервера. в чём может быть проблема? может не так что делаю?


Название: Re: POP 3
Отправлено: andrew.k от Ноябрь 12, 2011, 02:53
Ты хочешь прочитать ответ от сервера в момент отправки запроса.

У QTcpSocket есть сигнал readyRead().
Он тебе и нужен. К нему и подключай updateView()


Название: Re: POP 3
Отправлено: thechicho от Ноябрь 30, 2011, 16:55
http://qt-apps.org/index.php?xcontentmode=4231 (http://qt-apps.org/index.php?xcontentmode=4231)