我有一台位于美国的VPS机器(我买了这项服务)。机器每天为我做一些工作,在一天结束时,它会产生一个对我来说非常有用的文件。
实际上我必须在一天结束时远程连接机器(使用远程桌面)并在我的本地PC中手动获取文件。
我是一名Java开发人员,我想开发一个应用程序,将生成的文件自动转发到我的本地PC(当然只有当我的PC打开时,否则它会继续尝试转移,但没有成功)。
您是否知道是否可以通过仅使用免费/开源Java库来完成此类任务?
如果应该可以用java做到这一点,那应该很棒,但是如果Java没有这个,那么我也可以使用其他技术。
答案 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,真的很抱歉,但我没达到那个水平,解决了这个问题。这里只有新生。抱歉令人失望。