p2p文件通过互联网传输

时间:2011-08-23 15:02:02

标签: c# tcp network-programming p2p

我知道有几个类似的问题,例如this一个。我需要在两台计算机之间建立连接,并能够发送大文件。让我解释一下我在阅读类似帖子时遇到的问题:

1)很多人谈到了tcp连接。我能够发送数据,但大多数时候我无法发送大量数据。

2)在本地网络中创建的大多数示例。我能够通过互联网通过tcp示例在两个不同的网络上发送数据,但我必须在路由器上打开端口并将它们转发到我想要与之通信的计算机。

3)monotorrent或bitsharp等难以找到的图书馆,我找不到好的例子。我无法让他们工作。

所以简而言之,我只需要通过互联网将文件从一台计算机发送到另一台计算机,我不想在路由器上打开端口,也不想进行任何类型的端口转发。例如,当使用limewire并且他们从其他计算机下载文件时,人们不必在其路由器上打开端口。如果有人可以提供一个如何设置服务器以及如何使用客户端代码将文件发送到服务器的简短示例,那将是很好的。

2 个答案:

答案 0 :(得分:2)

您提到的端口打开和转发问题非常真实,并且没有简单的解决方法。像uTorrent这样的应用程序使用UPnP port mapping和/或NAT-PMP自动与您的路由器通信,并让它“动态”执行相关的端口映射。并非所有路由器都实现这些协议(并且在许多情况下,用户可能出于安全原因而不允许使用它们),因此网络上存在关于如何为limewire,uTorrent等进行端口转发的问题。

除了阅读此内容外,我建议您更详细地说明您的问题,例如:

  

我能够发送数据,但大多数时候我无法发送大量数据。

对于我们猜测问题是什么,这有点太模糊了。你发送什么尺寸的文件,通过什么连接,你得到错误,还是只是慢,等等?

答案 1 :(得分:0)

Binfer正是你要做的事情,除了它是闭源和商业。我不认为做这样的事情是微不足道的,因此你可能不会找到任何这样做的例子。很久以前,我涉足JXTA,它承诺了很多,但交付的太少了。