2011-05-11 102 views
0

我想编写一个Web应用程序,其中一个用户可以选择一个文件,其他多个用户可以从下载该指定文件,即用户的计算机。 用户将不得不离开他的电脑并打开网页。我该如何编写一个Web应用程序p2p网络?

我不想有一个大的主服务器,必须处理所有的流量。 用户的电脑就是服务器,耐人寻味。我知道我会使用洪流。

所有这些都必须在网站上完成。

Web插座是否可以工作?

请和谢谢。

+1

您是否在尝试构建洪流跟踪器? – robx 2011-05-11 01:39:28

+1

下载bittorent – Ibu 2011-05-11 01:41:18

回答

0

如果通过WebSockets你的意思是HTML5品种,我会远离那个。 http://en.wikipedia.org/wiki/WebSockets#Browser_support

必须保持的计算机基本上是您的服务器。即使它不是一个大的服务器。

我的建议是在每台用户计算机上安装apache或其他小型web服务器,并且每台计算机都有一个dyndns地址,以便您可以找到彼此。这比编码更容易。特别是如果它必须通过网页。

2

这个真没有可能的原因有多种:

  • 防火墙/ NAT的
  • 动态IP
  • 没有“服务器”上的用户的机器
  • 权限在用户的机器上运行
  • 如果用户只是在他们的机器上删除文件会发生什么?

要真正使其工作你必须:

  • 说服用户他们的计算机上安装的应用程序(你需要一个Windows/Linux的/ ... EXE)
  • 获取用户打开防火墙的端口(或使用某些库启用NAT中继)
  • 让用户的PC坪您在事件服务器中的用户的IP改变

在服务器端,你必须保持多个数据库表,这里有一些我能想到把我的头顶部:

  • 用户的表(用户ID [PK],目前的IP,通信端口,(可能其他一些跟踪的东西))
  • 可用的下载表(下载ID [PK],用户ID [FK])

后来,当有人想熄灭,下载,你必须(可能)启动您应用程序与必要的参数(远程用户的IP /端口/文件ID),并做下载的工作。

这绝不是一件容易的事。

0

您可以使用c#客户端库来连接到bittorrent等,并使用此模式上传/过滤。就NAT /防火墙问题而言,它们有很好的文档记录,并且正在使用协议的功能,即处理它。

相关问题