我希望能够实现一个Java应用程序,运行在网页上,允许以下操作: 用户A(通过其浏览器)可以向用户B(已打开其浏览器)请求文件。当然,用户A知道用户B的IP和端口。 用户B可以从其浏览器响应此请求。 我有哪些选项(Java库、技术等)可供选择? 谢谢!
如果你想在浏览器中使用Java,唯一的方法就是使用applet。但是一个普通的(不受信任的)applet:- 无法访问本地系统上的文件 - 无法监听任何端口 - 只能打开来自它所在服务器的套接字。这是出于安全原因:applet不应该能够损害运行它的用户的计算机。因此,如果你想做你所说的事情,你需要让用户相信你并给你更多的权限。对于文件访问,最好的方法是使用JNLP API(即使用jnlp文件启动你的applet,然后在javax.jnlp中使用API,特别是FileOpenService和FileSaveService)。然后用户需要在选择文件之前确认访问权限。这仍然对网络访问没有帮助 - 如果您不想在服务器上代理所有内容(这不是点对点的),则您的小程序需要具有适当的SocketPermissions。为此,您需要签署小程序,并向用户请求所有权限(我认为没有更精细的方式只授予必要的SocketPermissions)。您可以在jnlp文件中执行此操作。