2010-06-07 111 views
1

我们需要编写持续发送的软件(即在发送新数据时发送)将非常大的文件(几个Tb)同时发送到多个目标。一些目的地有一个专门的光纤连接到源,而有些则没有。通过网络连续发送大文件

几个问题就出来了:

  • 我们计划使用TCP套接字这项任务。你会推荐什么故障转移程序来处理网络中断和连接丢失?
  • 上传完成后会发生什么情况:服务器是否关闭了套接字?如果是这样,那么让另一个守护进程在另一个端口上提供文件校验和是一个好的设计决定吗?
  • 你能推荐一种方法来处理损坏的文件,除了再次下载它们吗?也许我可以将它们分成10Mb块并分别计算每个块的校验和?

谢谢。

+0

这不是一个编程问题。 – 2010-06-07 09:50:48

+0

如果我让你感到困惑:我们需要编写一个软件来处理上述的文件共享。因此,我得出结论:这确实是一个编程问题;不是吗? – dpq 2010-06-07 09:57:27

+1

你考虑过多播吗?将多个相同的块分发给多个客户端可能非常方便。尽管路线不好。 – 2010-06-07 17:25:59

回答

0

由于没有答案已经给出,我在这里分享我们自己的决定:

  • 有针对数据块和文件全部校验提供一个单独的守护进程。
  • 我们已经决定放弃现在使用VPN上的多点传送的想法;我们使用多进程服务器来分发这些文件。套接字关闭,工作进程在文件下载完成后立即退出;任何损坏的块需要单独下载。
  • 我们使用文件系统监视器来捕获新数据,只要它到达第1层分发服务器。