2

我的程序使用 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))

问题是该代码显然无法修改使用该程序的计算机的不可忽略比例的超时。

如何可靠地设置数据连接超时?

TIA,

塞尔吉·沃蒂尔。

4

1 回答 1

0

看起来这个 WinInet 问题无法可靠地解决。

我最终从 WinInet 切换到Ultimate TCP/IP

于 2009-11-02T07:51:16.933 回答