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))

問題は、プログラムが使用されているコンピューターの無視できない割合で、このコードが明らかにタイムアウトの変更に失敗していることです。

データ接続タイムアウトを確実に設定するにはどうすればよいですか?

ティア、

セルジュ・ワティエ。

4

1 に答える 1

0

この WinInet の問題は確実に解決できないようです。

最終的に WinInet からUltimate TCP/IPに切り替えました。

于 2009-11-02T07:51:16.933 に答える