WinInet: управление таймаутом в FTP поставлено - PullRequest
2 голосов
/ 16 декабря 2008

Моя программа помещает файл на удаленный хост, используя HTTP. Для некоторых неизбежно По этой причине удаленным хостам требуется некоторое время для подтверждения окончательного пакета передача данных. Больше времени, чем время ожидания по умолчанию, которое согласно по моему опыту около 30 секунд. Поэтому я хотел увеличить время ожидания до 5 минут, используя этот код:

DWORD dwTimeout= 300000; // 5 minutes
pFtpConnection->SetOption( // KB176420: this has no effect on some
  INTERNET_OPTION_SEND_TIMEOUT, dwTimeout); // old versions of IE.
pFtpConnection->SetOption(
  INTERNET_OPTION_RECEIVE_TIMEOUT, dwTimeout);
pFtpConnection->SetOption( // NB: Docs say these 2 are not implemented.
  INTERNET_OPTION_DATA_SEND_TIMEOUT, dwTimeout); 
pFtpConnection->SetOption( // our own tests show that they are!
  INTERNET_OPTION_DATA_RECEIVE_TIMEOUT, dwTimeout); 

Это код MFC, который сводится к вызову

InternetOption(hConnection, INTERNET_XXX, &dwTimeout, sizeof(dwTimeout))

Проблема в том, что этот код, по-видимому, не может изменить время ожидания немалая доля компьютеров, на которых используется программа.

Как я могу надежно установить тайм-аут подключения к данным?

ТИА,

Серж Вотье.

1 Ответ

0 голосов
/ 02 ноября 2009

Похоже, что эта проблема WinInet не может быть надежно решена.

В итоге я перешел с WinInet на Ultimate TCP / IP .

...