0

请告诉我如何使用远程方法调用将文件从远程计算机检索到您的计算机。我应该能够提供我计算机上的文件路径并从远程计算机的指定路径检索文件。请帮忙

4

3 回答 3

1

RMI(远程方法调用)不适用于连接到其他计算机。它用于连接到其他 java 应用程序(显然可以在本地或远程机器上运行)。

因此,您可以创建 2 个应用程序:通过 RMI 调用服务器的客户端。服务器将接收客户端的调用,从其本地文件系统中读取文件并将其传输给客户端。

但恕我直言,RMI 不是这项任务的最佳选择。可能更好的解决方案是使用它本机支持的协议之一连接到远程机器并检索文件。

例如,两台机器都在运行 Windows,您可以使用路径 liek this 打开文件\\remote-host\c$\dir1\dir2\file.txt

如果远程机器正在运行 Unix,您可以使用 SSH 连接到它。使用 SSH 协议的纯 java 实现,例如Jsch,所以客户端操作系统无关紧要。如果服务器端是 Windows 而客户端不是,您可以在 Windows 上安装 SSH 服务器,然后使用 Jsch 或在客户端机器上使用 Samba。

在所有情况下,您都可以使用 FTP,但可能需要执行一些额外的配置。有几个实现 FTP 的纯 java 库,例如VFS

于 2012-09-09T15:25:55.460 回答
0

RMI 只是一种技术。一种方法是在发布到 RMI 的服务器机器上运行 prossess,但它似乎不太安全......

您可以使用 FTP 或 SFTP 发布这些文件吗?至少这将是交换文件的标准方式。您还可以运行一个简单的 HTTP 服务器,在目录中发布文件。

自己实现此服务的问题之一是在接受请求时必须小心,您需要清理文件路径。这很容易出错,并且很有可能有人破解它。

于 2012-09-09T15:24:21.107 回答
0

你到底在做什么?您可以将文件读入字节数组,然后将其作为远程方法的返回值。但根据具体情况,还有其他(更简单的)方法可以做到这一点。

于 2012-09-09T15:24:56.137 回答