Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
tytus
0 / 0 / 0
Регистрация: 29.04.2012
Сообщений: 15
#1

Асинхронный ФТП-клиент - C++

14.06.2012, 17:05. Просмотров 341. Ответов 0
Метки нет (Все метки)

Хочу разобраться с асинхронным режимом FTP.
Вот колбек процедура: (неполная)
C++
1
2
3
4
5
6
7
8
9
void WINAPI TFtpClient::CallBack(
    __in HINTERNET hInternet,
    __in DWORD_PTR dwContext,
    __in DWORD dwInternetStatus,
    __in LPVOID lpvStatusInformation,
    __in DWORD dwStatusInformationLength)
{   
    UNREFERENCED_PARAMETER(dwStatusInformationLength);
    TFtpClient* ftpClient = (TFtpClient*)dwContext;
....
Вот статус, который устанавливается при завершении асинхронной операции:
C++
1
2
3
4
5
6
7
8
9
switch (dwInternetStatus)
{
case INTERNET_STATUS_REQUEST_COMPLETE:
    {
        INTERNET_ASYNC_RESULT *pRes = (INTERNET_ASYNC_RESULT *)lpvStatusInformation;
        ftpClient->OnStatus(dwInternetStatus, L"request complete.");                    SetEvent(ftpClient->RequestContext->CompletionEvent);
    }
    break;
}
А вот статус ответа, в котором указывается - сколько байт принято:
C++
1
2
3
4
5
6
7
8
9
10
case INTERNET_STATUS_RESPONSE_RECEIVED:
    {
        DWORD *dwBytesReceived = (DWORD*)lpvStatusInformation;
        ftpClient->RequestContext->dwDownloadedBytes = *dwBytesReceived;
        LPTSTR buf = (LPTSTR)LocalAlloc(LPTR, 255);
        StringCchPrintf(buf, 255, TEXT("response received: %d bytes."), *dwBytesReceived);
            ftpClient->OnStatus(dwInternetStatus, buf);
        LocalFree(buf);
    }
    break;
Так вот - я и хочу узнать - как прочитать ( получить доступ)
к принятым байтам? Что-же там пишеться?

Добавлено через 6 часов 21 минуту
ну вот ... никто так и не помог...
а ларчик открывался просто)))
нужно читать InternetGetLastResponseInfo
причем вызывать сию функцию нужно в
колбек-процедуре.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.06.2012, 17:05
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Асинхронный ФТП-клиент (C++):

ФТП up\down зависает на 1м файле на 0 байтов у некоторых - C++
такая проблема, у некоторых юзеров фтп upload виснет на 0 байтов, только создается на сервер первый передаваемый файл с нулевым размером и...

Асинхронный алгоритм RSA - C++
Подскажите в чем ошибка. для ввода сообщения использую латинский алфавит нижнего регистра, все работает кроме расшифровки букв x y z. ...

Асинхронный ввод с клавиатуры - C++
Доброго времени суток. Имеется клиент named pipes реализованный в консоли. Сервер время от времени шлет сообщения этому клиенту, ввод и...

асинхронный ввод/вывод - C++
задача состоит в том,что нужно умножить две матрицы размера n на n которые хранятся во внешней памяти и результат соответственно записать...

Асинхронный вызов метода с параметрами - C++
Здравствуйте, возможно ли в c++ вызвать метод с параметрами и не дожидаясь его завершения продолжать выполнять код? Например. ...

Что значит Асинхронный код? - C++
Каак понять?Допустим есть просто код который переходит в асемблер.И потом выполяется.Ну многое не понятно.

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.06.2012, 17:05
Привет! Вот еще темы с ответами:

Mpi отложенные запросы+асинхронный irecv - C++
В общем задание следующее: 1. На 0 процессе вводятся размер массива N и диапазон случайных чисел R и магическое число М. 2. Нулевой ...

Каждые 5 минут коннектится на фтп и оставляет там файл. Утечка памяти. - C++
Помогите пожалуйста. Есть сервис nt. Попробую передать основной смысл, чтоб не грузить ненужным кодом. // обработчик void...

Асинхронный вызов функции, возможно через другой поток - C++
Привет! Есть какой - то класс, содержащий какое-то поле (переменную) и какую - то функцию, изменяющую эту переменную. ну например такой ...

Найти ошибки, которые не дают сделать асинхронный сервер - C++
Хотелось мне сделать обертку вокруг асио. Чтобы обьект класса в одно время был сервером, в другое клиентом. Чтобы все быстро бегало,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru