ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

[wininet] помогите неразумному(((
  #1  
Старый 13.05.2010, 20:58
RedFern.89
Постоянный
Регистрация: 20.01.2010
Сообщений: 338
Провел на форуме:
500264

Репутация: 69
Отправить сообщение для RedFern.89 с помощью ICQ
Lightbulb [wininet] помогите неразумному(((

при передачи файла на сервер, программа виснет! Код процедуры:

Код:
function UploadFileToServer(aurl: string; FileName: string): boolean;
var
  hSession       : hInternet;
  hConnect       : hInternet;
  hRequest       : hInternet;
  hFile          : THandle;
  RequestFlags   : DWORD;
  Sum            : DWORD;
  dwBytesRead    : DWORD;
  dwBytesWritten : DWORD;
  pBuffer        : DWORD;
  bRead, bRet    : boolean;
  BufferIn       : INTERNET_BUFFERS;
  _post, Headers,
  boundary       : string;
begin
  boundary := '--------' + FormatDateTime('mmddyyhhnnsszzz ', Now); { not localize }
 _post := 'note=vk&font1=decor&font2=20&orient=h&size1=x&size2=1024x768&rotate=00&flip=0&mini=300x225&opt3[]=zoom&email=';

  headers := 'Content-Type: multipart/form-data; boundary=' + boundary;

  pBuffer := 1024;
  hSession := InternetOpen('Delphi/7.0', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);

  hConnect := InternetConnect(hSession, PChar(GetHost(AUrl)), 80, nil, nil,
                              INTERNET_SERVICE_HTTP, 0, 0);

  RequestFlags := INTERNET_FLAG_NO_CACHE_WRITE or  INTERNET_FLAG_KEEP_CONNECTION;

  hRequest := HttpOpenRequest(hConnect, 'POST', '/index.php', 'HTTP/1.1', nil, nil,
                              RequestFlags, 0);

  hFile := CreateFile(PChar(FileName), GENERIC_READ, FILE_SHARE_READ, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);

  ZeroMemory(@BufferIn, SizeOf(BufferIn));
  BufferIn.dwStructSize := SizeOf(INTERNET_BUFFERS);
  BufferIn.dwBufferTotal := GetFileSize(hFile, nil);
  BufferIn.lpcszHeader := PChar(Headers);
  BufferIn.dwHeadersLength := Length(Headers);

  HttpSendRequestEx(hRequest, @BufferIn, nil, HSR_INITIATE, 0);

  Sum := 0;
  bRead := True;
  bRet := True;

  repeat
    bRead := ReadFile(hFile, pBuffer, SizeOf(pBuffer), dwBytesRead, nil);
    bRet := InternetWriteFile(hRequest, @pBuffer, dwBytesRead, dwBytesWritten);
    sum := sum + dwBytesWritten;
  until dwBytesRead = SizeOf(pBuffer);


 HttpEndRequest(hRequest, nil, 0, 0);

  CloseHandle(hFile);
  InternetCloseHandle(hSession);
  InternetCloseHandle(hConnect);
  InternetCloseHandle(hRequest);    
end;
 
Ответить с цитированием

  #2  
Старый 13.05.2010, 21:07
AlexTheC0d3r
Постоянный
Регистрация: 25.07.2008
Сообщений: 454
Провел на форуме:
1229135

Репутация: 425
Отправить сообщение для AlexTheC0d3r с помощью ICQ
По умолчанию

скорее всего цикл
Цитата:
repeat
bRead := ReadFile(hFile, pBuffer, SizeOf(pBuffer), dwBytesRead, nil);
bRet := InternetWriteFile(hRequest, @pBuffer, dwBytesRead, dwBytesWritten);
sum := sum + dwBytesWritten;
until dwBytesRead = SizeOf(pBuffer);
бесконечный
 
Ответить с цитированием

  #3  
Старый 13.05.2010, 21:10
RedFern.89
Постоянный
Регистрация: 20.01.2010
Сообщений: 338
Провел на форуме:
500264

Репутация: 69
Отправить сообщение для RedFern.89 с помощью ICQ
По умолчанию

закоментил строку HttpEndRequest(hRequest, nil, 0, 0); и виснуть перестало. Однако запрос не передается по нормальному.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Народ!!! Помогите НАМ!!! Помогите покончить с беспределом!!! Monah Чаты 7 24.08.2005 07:06



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ