年前在做嵌入式組態時,有一個組態下載功能,該功能就是采用FTP上傳功能把組態配置文件上傳到觸摸屏(WinCE4.2平臺,已開FTP服務器)中的。所用到的指令就是WebClient類的UploadFile(該類是精簡框架集2.0新加功能),使用發現,下載文件需要延遲大約15秒才開始下載。其實下載過程挺快,就是下載前有延遲。
由于UploadFile僅一條指令就完成下載,所以無法分析相關延遲的原因。這次研究FTP Server/Client終于把相關原因給搞清楚了,UploadFile程序為了通用(即可以支持ip地址方式,也支持域名解析), 也就是需要執行Dns.GetHostEntry(server).AddressList命令,該命令在windows系統,沒有任何問題,執行正常,但是如果FTP服務器在嵌入式平臺(Wince),問題就來了,該命令執行巨慢,延遲的罪魁禍首就是它(其實應該是Wince平臺不爭氣)。
該問題如何解決?我想如果用WebClient類好像沒有什么好辦法,我的解決方案是,自己編寫FTP客戶段,問題就迎刃而解,不需要Dns解析,直接傳遞IP地址即可。
新聞熱點
疑難解答