• XSS.stack #1 – первый литературный журнал от юзеров форума

Асинхронно передать данные на сервер

Jurddox

RAID-массив
Забанен
Регистрация
22.09.2020
Сообщения
93
Реакции
4
Пожалуйста, обратите внимание, что пользователь заблокирован
Всем привет, нужно соединится с сервером и передать большое количество данных(оклоло 200мб) нужно делать все асинхронно. Наведите на какие небыли примеры/документацию, сам что то ничего не нахожу
 
Пожалуйста, обратите внимание, что пользователь заблокирован
На чем хоть сделать то надо?
Скрытый контент для пользователей: .

Скрытый контент для пользователей: admin.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
ну может на HttpSendRequestW
ну может быть откроем базовую книгу по winapi и перейдем в раздел потоки?
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Пожалуйста, обратите внимание, что пользователь заблокирован
А функция HttpSendRequestW работает же синхронно? Я пробую передать файл размеров 2мб все ок идет, 3 мб уже не успевает загрузить. Я все еще не понял как асинхронно загружать... через callback функцию вроде как то можно я хз как, в гугле норм идей не нашел
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Я пробую передать файл размеров 2мб все ок идет, 3 мб уже не успевает загрузить.
Что значит не успевает? Ошибка какая-то вываливается или что? Если ошибка, то с каким кодом? Да и залей вообще весь код, что мы тут должны на кофейной гуще гадать, что ты там накодил?
 
Пожалуйста, обратите внимание, что пользователь заблокирован
C++:
void send(PCSTR domain, PCSTR file, SIZE_T fileSize)
{
    CHAR* szReq = (CHAR*)malloc(fileSize + 6);
    wnsprintfA(szReq, fileSize + 6, "file=%s", file);

    HINTERNET hIntSession = InternetOpenA("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);
    HINTERNET hHttpSession = InternetConnectA(hIntSession, domain, 80, 0, 0, INTERNET_SERVICE_HTTP, 0, NULL);
    HINTERNET hHttpRequest = HttpOpenRequestA(hHttpSession, "POST", "index.php", 0, 0, 0, INTERNET_FLAG_RELOAD, 0);

    const WCHAR* szHeaders = L"Content-Type: application/x-www-form-urlencoded";
    HttpSendRequestW(hHttpRequest, szHeaders, lstrlenW(szHeaders), (CHAR*)szReq, lstrlenA(szReq));

    InternetCloseHandle(hHttpRequest);
    InternetCloseHandle(hHttpSession);
    InternetCloseHandle(hIntSession);
    free((CHAR*)szReq);
}
 
Пожалуйста, обратите внимание, что пользователь заблокирован
О хоспаде. Я вижу тут очень много проблем. Во-первых проверяй, что каждая функция успешно выполнилась после ее вызова. Во-вторых, ты правильно кодируешь данные в urlencoded? В-третьих, как насчет флага INTERNET_FLAG_KEEP_CONNECTION, не пробовал? В-четвертых, ответ сервера считать не хочешь? В-пятых, возьми wireshark и посмотри, что происходит с сетевыми пакетами.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Во-вторых, ты правильно кодируешь данные в urlencoded
а можно поподробнее об этом) ну вроде это не из-за этого, т.к я уже написал, что если файл загружаю 2 мб - все норм, на 3 мб- ошбика 12004
 
Пожалуйста, обратите внимание, что пользователь заблокирован
ну я поставил флаг HINTERNET hIntSession = InternetOpenA("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, INTERNET_FLAG_KEEP_CONNECTION); такая же фигня не грузит файл
 
Пожалуйста, обратите внимание, что пользователь заблокирован
На c# сделаю клиент сервер с подобным функционалом
да нафига мне этот шарп
 
Пожалуйста, обратите внимание, что пользователь заблокирован
ну я поставил флаг HINTERNET hIntSession = InternetOpenA("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, INTERNET_FLAG_KEEP_CONNECTION); такая же фигня не грузит файл
INTERNET_FLAG_KEEP_CONNECTION так то флаг для функции HttpOpenRequest.

а можно поподробнее об этом) ну вроде это не из-за этого
Ну я не в курсе из-за этого или нет, зависит от реализации сервера. Подробнее гугли про urlencode.

ну че поможет кто?)
Давай запускай wireshark и смотри запросы.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх