使用Java的P2P(浏览器到浏览器)

时间:2011-03-06 15:35:17

标签: java browser java-ee applet p2p

我想实现一个在网页上运行的Java应用程序,并允许:

  • 用户A(来自其浏览器)可以向用户B请求文件(其浏览器已打开)。当然用户A知道用户B的IP和端口。
  • 用户B可以从其浏览器回复此请求。

我有哪些选项(Java库,技术......)?

谢谢!

1 个答案:

答案 0 :(得分:7)

如果你想在浏览器中使用Java,唯一的方法就是小程序。

但是一个普通的(不受信任的)applet:

  • 无法访问本地系统上的文件
  • 无法在任何端口收听
  • 只能在它来自的服务器上打开套接字。

这是出于安全原因:applet不应该损害运行它的计算机的用户。

所以,如果你想做你说的话,你需要用户信任你并给你更多的权限。对于文件访问,要采用的方法是JNLP API(即使用jnlp文件启动applet,然后使用javax.jnlp中的API,特别是FileOpenService和FileSaveService。然后用户需要确认访问权限选择带有文件选择器的文件。

这仍然对网络访问没有帮助 - 如果您不想代理服务器上的所有内容(这不是点对点),那么您的applet需要在那里拥有合适的SocketPermissions。为此,您需要签署您的applet,并请求用户的所有权限(我认为没有更细粒度的方式只提供必要的SocketPermissions)。您可以在jnlp文件中执行此操作。