WinInet:FTP put 中的超时管理

Posted

技术标签:

【中文标题】WinInet:FTP put 中的超时管理【英文标题】:WinInet: timeout management in FTP put 【发布时间】:2008-12-15 22:25:10 【问题描述】:

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

塞尔吉·沃蒂尔。

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

以上是关于WinInet:FTP put 中的超时管理的主要内容,如果未能解决你的问题,请参考以下文章

Delphi 中用于 FTP 的 WinInet 包装器

对于大多数 FTP 函数,IE 11 中的 wininet 随机返回错误 12003

FtpGetFile WinINet 永远不会返回

wininet ftp程序遇到seg错误

c ++ wininet ftp列出许多文件错误

WinInet 设置会话超时