Copying Files over an Intermittent Network Connection我正在寻找一种鲁棒的方式来通过Windows网络共享复制文件,该文件可以间歇性连接。 该应用程序通常在大型医院的无线移动工作站上使用,我假设连接可能会暂时断开或一次断开几分钟。 所涉及的文件大小通常约为200KB-500KB。 该应用程序是用VB6(ugh)编写的,但是我们经常最终使用Windows DLL调用。 谢谢! 我使用Robocopy取得了很好的效果。默认情况下,它将每30秒重试一次,直到遍历文件为止。 我不清楚您的实际问题是什么,所以我会提出一些想法。
根据目前为止我所知道的,我认为下面的伪代码将是我的方法:
首先压缩文件可以保存对成功复制哪些文件以及需要重新启动哪些文件的跟踪。它还应该使副本运行得更快(较小的总文件大小,以及较大的单个文件大小),但以牺牲双方的CPU能力为代价。一个简单的批处理文件可以在服务器端将其解压缩。 尝试使用BITS(背景智能传输服务)。它是Windows Update使用的基础结构,可通过Win32 API访问,并且是专门为解决此问题而构建的。 它通常用于应用程序更新,但在任何文件移动情况下都可以正常工作。 http://www.codeproject.com/KB/IP/bitsman.aspx 我同意Robocopy作为解决方案...这就是为什么将该实用程序称为" Robust File Copy"
默认情况下,一百万次重试。这对于您的间歇连接应该足够了。 它还执行可重新启动的传输,并且您甚至可以限制数据包之间的间隔传输,以确保您不希望像其他程序使用同一连接(/ IPG开关)一样使用所有带宽? 嗯,似乎rsync做到了,并且不需要服务器/守护进程/安装(我认为是的)-仅$ rsync src dst。 您可以使用Microsoft SyncToy(免费)。 http://www.microsoft.com/Downloads/details.aspx?familyid=C26EFA36-98E0-4EE9-A7C5-98D0592D8C52&displaylang=en 在发送文件之后或之前简单地发送哈希并将其与收到的文件进行比较怎么样?那至少应该确保您有正确的文件。 如果您想全力以赴,则可以执行相同的过程,只是对文件的一小部分。然后,当您拥有所有部件时,将它们加入接收端。 短信(如果可用)有效。 |