我需要将目录中的少量文件移动到另一台计算机中的另一个目标。源和目标目录名称是事先已知的。这些目录将在不同的操作系统中(即源可以是Linux,目标可以在Windows中)。
为了解决这个问题,我用Java编写了一个Socket程序,它成功地将文件从源目录复制到目标目录(在Windows操作系统中测试)。但是这个应用程序需要在主机和远程机器上运行程序。所以,我的问题是:
1)有没有办法在没有程序在远程机器上运行的情况下使用Java Socket程序传输文件(以上述方式)?
2)是否使用Java套接字程序进行文件传输,绕过firewal。换句话说,如果远程机器中存在防火墙会停止传输过程吗?
3)使用Java传输文件的任何替代方法(以上述方式),只需要运行主机或远程。?
提前致谢, NKS
答案 0 :(得分:1)
1)您始终需要在两台计算机上运行程序。但是,解决此问题的方法是使用已在其中一台计算机上运行的程序。
e.g。如果您将目录设为Windows共享(假设它已在运行),您可以在Linux机器上安装此共享(使用smbfs),然后可以使用cp
复制文件。这意味着您不需要Java结束,但你需要一个程序和一个服务(但它可以是一个现有的)
2)除非您的网络严重错误配置,否则无法绕过防火墙。这是拥有一个的重点。
3)在Windows上安装Windows框或在Windows上安装Linux文件(使用Samba)即可轻松复制文件,即使使用Java也是如此。 ;)