1.超时,HTTP超时
CInternetSession sess(NULL,1,INTERNET_OPEN_TYPE_PROXY,pstrProxyName,NULL,0);
设置了sess.SetOption (INTERNET_OPTION_CONNECT_TIMEOUT,1000* 20);
其中一次打开下面http花费了10min
pF=(CHttpFile*)sess.OpenURL("http://www.yahoo.com",1,INTERNET_FLAG_TRANSFER_ASCII|INTERNET_FLAG_RELOAD|INTERNET_FLAG_DONT_CACHE);2似乎超过5个线程调用上述代码,CInternetSession就阻塞了,至到有线程释放了CInternetSession。
搞不清楚WinInet运行机制,打算用socket直接写,不知道大家用WinInet多么?

解决方案 »

  1.   

    设置了
    sess.SetOption  (INTERNET_OPTION_CONNECT_TIMEOUT,1000*  20);  
    sess.SetOption  (INTERNET_OPTION_DATA_RECEIVE_TIMEOUT,1000 * 30);  
                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~这个是接受数据的超时吧?但是,在测试钟出现了接受一个网页花了5分钟,远超过了设置的超时时间30S
      

  2.   

    1、CInternetSession 有BUG,超时设置无效。
    2、(WinInet 限制了到每个服务器的连接数:
         WinInet会限制同时连接到单个HTTP1.0服务器(的请求数)为4个。到单个HTTP1.1服务器的
       连接,被限制为同时2个。HTTP1.1协议要求两个连接的限制,而对于HTTP1.0的4个连接则是
       自我约束的,这种约束成为许多流行的Web浏览器的标准。     对于你的应用程序来说,这种限制的唯一证明是:调用HttpSendRequest和InternetOpenUrl
       函数时,显现出较长的操作完成时间,这是因为他们的请求发出之前,在等待前一个连接的释放
     )
      

  3.   

    俺是菜菜鸟,以前问过同样的问题,不过没得到解决方案,兄弟如果有啥好方法通知俺一声email: [email protected]