使用java套接字编程查询文件传输

时间:2011-10-21 10:52:35

标签: java sockets

我需要将目录中的少量文件移动到另一台计算机中的另一个目标。源和目标目录名称是事先已知的。这些目录将在不同的操作系统中(即源可以是Linux,目标可以在Windows中)。

为了解决这个问题,我用Java编写了一个Socket程序,它成功地将文件从源目录复制到目标目录(在Windows操作系统中测试)。但是这个应用程序需要在主机和远程机器上运行程序。所以,我的问题是:

1)有没有办法在没有程序在远程机器上运行的情况下使用Java Socket程序传输文件(以上述方式)?

2)是否使用Java套接字程序进行文件传输,绕过firewal。换句话说,如果远程机器中存在防火墙会停止传输过程吗?

3)使用Java传输文件的任何替代方法(以上述方式),只需要运行主机或远程。?

提前致谢, NKS

1 个答案:

答案 0 :(得分:1)

1)您始终需要在两台计算机上运行程序。但是,解决此问题的方法是使用已在其中一台计算机上运行的程序。

e.g。如果您将目录设为Windows共享(假设它已在运行),您可以在Linux机器上安装此共享(使用smbfs),然后可以使用cp复制文件。这意味着您不需要Java结束,但你需要一个程序和一个服务(但它可以是一个现有的)

2)除非您的网络严重错误配置,否则无法绕过防火墙。这是拥有一个的重点。

3)在Windows上安装Windows框或在Windows上安装Linux文件(使用Samba)即可轻松复制文件,即使使用Java也是如此。 ;)