.net - 如何将大文件从桌面传输到服务器 (.NET)

标签 .net networking microsoft-bits

我正在编写一个基于 .NET 2.0 的桌面客户端,它将向服务器发送大文件(小于 2GB)。还需要开发服务器。服务器可以采用任何技术 它应该是安全的,因此需要底层 SSL 流 我有什么选择。我应该注意的任何明显的警告等 在我看来,最简单的解决方案是通过 SSL 打开到服务器的 tcp\ip 连接,并发送 n 个数据包,每个数据包大小为 M 字节,然后让服务器将 block 附加到文件中,最后还发送一个 EOF 数据包

这太可怕了。所有这些磁盘写入会导致服务器性能下降吗 还有什么其他聪明的选择。我在客户端上仅限于 .NET 2.0 如果我确实转向 WCF 客户端,对于这种情况,它会带来神奇且酷炫的东西吗? 谢谢

最佳答案

查看 Windows 计算机上已有的 BITS 服务(后台智能传输服务)。许多操作系统子系统(例如 Windows Update)都使用它来利用空闲网络带宽传输大量数据。

使用 BITS 之类的最大优点是传输可中断且可重新启动 - 部分上传将在稍后恢复传输时保留并合并。

您通常认为 BITS 是将文件从服务器传输到客户端计算机,但显然 BITS 可用于从客户端上传到服务器 - 有一些第三方实用程序使用 BITS 上传 - 包括 YouTube 上传程序.

维基百科上有关 BITS 的更多信息:http://en.wikipedia.org/wiki/Background_Intelligent_Transfer_Service

关于.net - 如何将大文件从桌面传输到服务器 (.NET),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2561961/

相关文章:

java - 套接字编程Java : How to receive multiple files from outputstream?

powershell-2.0 - 如何在 Powershell 中使用 BITS 上传/下载文件?

http-headers - 后台智能传输服务和 Amazon S3

c# - 强制 WebClient 使用 SSL

c# - 使用 LINQ 删除重复项会返回 "Error removing duplicates: Unable to cast object of type ' System.Int3 2' to type ' System.String'。”

linux - tcpdump 不显示 Wireshark 看到的数据包

ubuntu - Ubuntu 14.04 的 Cisco SSH key 交换失败(客户端 DH key 范围不匹配)

c# - SSIS:以编程方式获取 Excel 文件工作表

.net - 如何使用 Entity Framework 6 的 TNS 别名连接到 Oracle DB?