Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
tytus
0 / 0 / 0
Регистрация: 29.04.2012
Сообщений: 15
14.06.2012, 17:05     Асинхронный ФТП-клиент #1
Хочу разобраться с асинхронным режимом 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
причем вызывать сию функцию нужно в
колбек-процедуре.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.06.2012, 17:05     Асинхронный ФТП-клиент
Посмотрите здесь:

ФТП up\down зависает на 1м файле на 0 байтов у некоторых C++
Асинхронный ввод с клавиатуры C++
C++ Асинхронный алгоритм RSA
Найти ошибки, которые не дают сделать асинхронный сервер C++
C++ Что значит Асинхронный код?
Асинхронный вызов функции, возможно через другой поток C++
C++ асинхронный ввод/вывод
Асинхронный вызов метода с параметрами C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 15:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru