首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

FTP有关问题

2012-02-24 
FTP问题最近在做一个ftp上传下载程序,服务器端定时(1s)将数据文件(txt)传到外网ftp上的指定文件夹下,客户

FTP问题
最近在做一个ftp上传下载程序,服务器端定时(1s)将数据文件(txt)传到外网ftp上的指定文件夹下,客户端定时(1s)从ftp上下载数据文件,不知道为什么运行一段时间(一般10分钟左右)程序就卡死,请高手指点一下,谢谢!。
程序中用到的上传下载函数均是API,如下:
查找:FtpFindFirstFile
上传:FtpPutFile
下载:FtpGetFile
删除:FtpDeleteFile



[解决办法]
你是用InternetConnect、InternetOpen 之类的API吧?这种方式连接远程SERVER应该是同步方式、一旦出现错误,比如断网、出错等,在没有到其timeout时间之前进程就一直锁死在那里,造成假死。没办法。

能做的就是尽量缩小上传文件大小,比如先压缩(这样把上传文件压缩到几K)后上传;还有就是做好容错。
[解决办法]
哦,还一个办法是,另外开一个线程监视原线程,发现原线程阻塞后,就InternetCloseHandle()
参考http://support.microsoft.com/kb/224318


[解决办法]
用WINSOCK自己实现FTP协议的话,可以自由控制超时这些.

不过就比较麻烦了.
[解决办法]
可能就是因为网络原因造成堵塞或断网,我以前做过一个定时GET文件的程序,也是因为网慢,第一次没有GET完,而第二次GET的时间又到了,进而造成死机,后来我在程序中加入定时PING,不通时提醒,不再执行GET,转而检查网络,好像有所解决。减小上传大小应该是个办法,但问题仍在。
[解决办法]
试试将请求放在另一个线程里面吧,参考:

http://www.m5home.com/blog/article.asp?id=65

单元线程实现原理及代码:

http://www.m5home.com/blog/article.asp?id=54

热点排行
Bad Request.