Java:如何将文件副本从vps机器(可通过远程桌面访问)移动到我的本地PC

时间:2016-07-27 14:04:02

标签: java networking ftp remote-desktop

我有一台位于美国的VPS机器(我买了这项服务)。机器每天为我做一些工作,在一天结束时,它会产生一个对我来说非常有用的文件。

实际上我必须在一天结束时远程连接机器(使用远程桌面)并在我的本地PC中手动获取文件。

我是一名Java开发人员,我想开发一个应用程序,将生成的文件自动转发到我的本地PC(当然只有当我的PC打开时,否则它会继续尝试转移,但没有成功)。

您是否知道是否可以通过仅使用免费/开源Java库来完成此类任务?

如果应该可以用java做到这一点,那应该很棒,但是如果Java没有这个,那么我也可以使用其他技术。

2 个答案:

答案 0 :(得分:1)

解决方案有效。为了能够帮助其他人,我提到的最后一个问题就是Windows防火墙已启用并阻止了我的电脑的连接。 通过关闭Windows防火墙,解决方案可以正常工作。

答案 1 :(得分:0)

您提出的想法在Java中称为套接字编程。是的,有可能做你想的,但我将是一个很好的工作量。我能做的是,给你一些关于插座的想法,休息你可以自己设计。

我们走了, 对于客户端计算机打开这样的套接字,有关详细信息,请参阅 - http://www.javaworld.com/article/2077322/core-java/core-java-sockets-programming-in-java-a-tutorial.html

Socket MyClient;
MyClient = new Socket("Machine name", PortNumber);

包含异常(注意 - 离线客户端)

Socket MyClient;
try { MyClient = new Socket("Machine name", PortNumber);}
catch (IOException e) {
    System.out.println(e);}

现在服务器

ServerSocket MyService;
try { MyServerice = new ServerSocket(PortNumber);}
    catch (IOException e) {
       System.out.println(e);}

Socket对象将侦听来自客户端的请求,

Socket clientSocket = null;
try { serviceSocket = MyService.accept();}
catch (IOException e) {
   System.out.println(e);} 

现在在客户端,创建一个输入流以从服务器接收信息

DataInputStream input;
try {
   input = new DataInputStream(MyClient.getInputStream());
}
catch (IOException e) {
   System.out.println(e);
}

在服务器端,使用DataInputStream接收来自客户端的输入

DataInputStream input;
try {
   input = new DataInputStream(serviceSocket.getInputStream());
}
catch (IOException e) {
   System.out.println(e);
}
@Andrea,真的很抱歉,但我没达到那个水平,解决了这个问题。这里只有新生。抱歉令人失望。