使用 C# 在网络中发送文件的最佳方法是什么?

8

请问有没有教程可以指导我如何在客户端和服务器之间建立连接,读取二进制文件并可靠地通过网络连接发送其内容?更好的是,是否有开源库已经实现了这个功能,我可以参考一下?

6个回答

6

1
第二个链接来自2001年,即使在这个问题刚出现时也已经过时了。它并不是一个很好的教程,更像是一个代码示例。 - YetAnotherRandomUser

2
这取决于您所说的网络是什么 - 如果您正在本地网络上复制,可以在 System.IO 中使用文件复制操作。如果您想要发送到远程服务器,则可以使用 Web 服务。我压缩字节数组并将其发送到远程端进行解压缩。使用流将字节数组写回磁盘非常容易。我知道有些人更喜欢使用 base64 字符串而不是 byte[],不确定是否有影响。

1

对于单个文件,我不会使用HTTP或FTP,因为它们的开销太大,而且编码量也很大,特别是在C#中已经有一个简单的TCP服务器几乎可以直接使用。


1

如果你只需要在网络上进行通信,那么套接字可能是最好的选择。如果你使用TCP协议,你可以获得通信的可靠性,但会影响速度。如果你需要更高的性能,可以尝试使用UDP协议。但UDP的缺点是包传递和顺序不能保证,所以你需要自己编写所有相关代码。

如果你需要通过网络传输文件(以编程方式,并且不能使用FTP),那么通过MTOM的Web服务方法可能适合你的需求。

如果你正在构建基于Windows Server 2003 R2、Windows Vista或Windows Server 2008的应用程序,并进行内部网络传输,另一个选择是利用新的Remote Differential Compression功能。它不仅可以很好地压缩文件以减少网络流量,而且还直接被DFS复制使用。缺点是(作为.NET开发人员),它是一种COM+技术。


0

使用HTTP或FTP怎么样?它们似乎是为此而设计的。

Alex


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接