点对点文件传输 C#

8

嘿,我在谷歌上搜索了很久,但好像找不到与点对点传输有关的内容。

基本上,我想要能够从我的电脑向其他人的电脑发送文件。有没有人知道任何可以帮助我完成这个任务的指南?

谢谢。


本地网络还是互联网? - Neil N
4个回答

6

请搜索谷歌上的 ".NET 3.5 framework" 中可用的命名空间 "System.Net.PeerToPeer"。您可以轻松找到文档和示例代码。


你有任何示例代码的链接吗?我找到的唯一实际代码是2007年解决对等方名称的示例,而MSDN文档似乎过于关注类的细节,而不是如何将它们组合在一起。谢谢! - BarrettJ
解析名称是最重要的,其余的都很容易。官方技术示例在这里:http://msdn.microsoft.com/en-us/library/bb906998.aspx - Hans Passant

3
如果目标计算机能够公开一个URI以便发布,则可以简单地使用:
WebClient.UploadFile(Uri address, string filename)

很简单,只需要将URI作为地址(http、ftp,甚至是文件协议以传输到文件夹共享)。但这需要在服务器端设置发布内容,但在服务器上可以独立使用(例如任何旧的FTP服务器,或接受POST方法上传文件的网页或服务)。不过,安全性可能是您需要考虑的问题。这是使用推送模式。WebClient也可用于从另一侧进行下载。它还支持数据流、字符串等的传输。

3
如果您只是想使用C#“将文件从我的计算机发送到其他人的计算机”,那么您可能不是在寻找真正的点对点(P2P)通信。您可以使用原始TCP协议。为此,需要远程计算机“侦听”连接,您的计算机打开到远程计算机的连接并开始发送数据。
这里有一个非常基本的示例说明如何实现该功能,您可以参考这里
如果您确实需要真正的 P2P 通信,则最好使用现有的 P2P 网络,否则只有您和另一个计算机可用。有一些 C# BitTorrent 库可以使用,例如 BitSharp, TorrentNet。关于用纯 C# 编写的 BitTorrent 库,这里有一个完整的问题讨论:链接

0

看看这个Code Project上的项目。

它提供了P2P聊天和文件传输功能,可能是一个灵感或解决方案。


谢谢,但那是针对C++的,我正在寻找C#。 - Crazyd22
这种方法应该是有用的,无论使用哪种语言。然而,我会点赞nobugz。我不知道.Net 3.5中的PeerToPeer添加。 - Eric J.

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