1.我使用idhttp多线程下载,在下载线程里只负责get,但是get完毕我没有断开连接(disconnect),直接继续get。这样做会有什么安全隐患吗?
2.我下载3万个文件,一开始下载速度还是可以的,但是时间越久速度越慢,这个是服务器上的问题吗还是客户端idhttp的问题呢?如果并发数变多,下载到1万多个文件以后,速度真的太慢太慢了。我现在不知道是服务器引起速度变慢还是客户端代码问题(idhttp)导致速度变慢的?
2.我下载3万个文件,一开始下载速度还是可以的,但是时间越久速度越慢,这个是服务器上的问题吗还是客户端idhttp的问题呢?如果并发数变多,下载到1万多个文件以后,速度真的太慢太慢了。我现在不知道是服务器引起速度变慢还是客户端代码问题(idhttp)导致速度变慢的?
解决方案 »
- DELPHI设置proxyserver失败
- Rave Report安装问题?
- 怎样在程序运行时调出AdoConnection的ConnectionString设置窗口,并得到返回的连接字符串
- 请教在98下如何将一个文件夹设为共享
- 高手快来帮我看一下,我的文件拷贝功能为什么会出错?
- setsystemtime?急
- 送笑文一篇,祝大家晚上愉快!
- 高分求助:
- 请教如何将软盘中的EXCEL数据导入到SQL数据库中(用程序实现),请给出例子或设计提示?
- 如何使Edit控件获得焦点?
- 在fastreport中设计好报表后,如何通过button按钮让它跳出来?
- delphi xe2 trichedit 载入图片保存至数据库问题
注意IDHTTP释放。
文件大的话,适当设置内存的大小
文件并发量的话,服务器肯定受不了
这样每个线程结束 就自动释放了 建议你disconnect 我也经常写 Idhttp 多线程下载的东东 线程数一般不要超过10 否则服务器不堪重压很多线程会timeout
不要用多个线程操作一个IDHTTP;
线程操作idhttp类似这样访问端口的东西 都要独立处理
不要混在一起 想过去好像是不会有问题
但是程序在运行的时候 就是会报错
最好是要严格封开
还有 最好在线程中加入 initco初始化端口的代码,不然有时候会出错 注意得引用activex单元
2.我下载的模式是提供一个管理线程对下载线程进行线程数量的控制和分配url给线程下载,管理线程里也有个idhttp(只创建一次,同管理线程一起销毁),用于提取url的文件名。idhttp工作模式是(create->head->disconnect->head->disconnect....->freeandnil)你们觉得我这样做会有什么毛病吗?我觉得下载速度挺慢的。
需要把这个 keeplive 设置成 1,这样 time_wait 可能会少,防止 socket 用完。