1 16 package examples; 17 18 import java.io.IOException ; 19 import java.io.PrintWriter ; 20 import java.net.InetAddress ; 21 import org.apache.commons.net.ProtocolCommandListener; 22 import org.apache.commons.net.ftp.FTPClient; 23 import org.apache.commons.net.ftp.FTPReply; 24 25 36 public final class server2serverFTP 37 { 38 39 public static final void main(String [] args) 40 { 41 String server1, username1, password1, file1; 42 String server2, username2, password2, file2; 43 FTPClient ftp1, ftp2; 44 ProtocolCommandListener listener; 45 46 if (args.length < 8) 47 { 48 System.err.println( 49 "Usage: ftp <host1> <user1> <pass1> <file1> <host2> <user2> <pass2> <file2>" 50 ); 51 System.exit(1); 52 } 53 54 server1 = args[0]; 55 username1 = args[1]; 56 password1 = args[2]; 57 file1 = args[3]; 58 server2 = args[4]; 59 username2 = args[5]; 60 password2 = args[6]; 61 file2 = args[7]; 62 63 listener = new PrintCommandListener(new PrintWriter (System.out)); 64 ftp1 = new FTPClient(); 65 ftp1.addProtocolCommandListener(listener); 66 ftp2 = new FTPClient(); 67 ftp2.addProtocolCommandListener(listener); 68 69 try 70 { 71 int reply; 72 ftp1.connect(server1); 73 System.out.println("Connected to " + server1 + "."); 74 75 reply = ftp1.getReplyCode(); 76 77 if (!FTPReply.isPositiveCompletion(reply)) 78 { 79 ftp1.disconnect(); 80 System.err.println("FTP server1 refused connection."); 81 System.exit(1); 82 } 83 } 84 catch (IOException e) 85 { 86 if (ftp1.isConnected()) 87 { 88 try 89 { 90 ftp1.disconnect(); 91 } 92 catch (IOException f) 93 { 94 } 96 } 97 System.err.println("Could not connect to server1."); 98 e.printStackTrace(); 99 System.exit(1); 100 } 101 102 try 103 { 104 int reply; 105 ftp2.connect(server2); 106 System.out.println("Connected to " + server2 + "."); 107 108 reply = ftp2.getReplyCode(); 109 110 if (!FTPReply.isPositiveCompletion(reply)) 111 { 112 ftp2.disconnect(); 113 System.err.println("FTP server2 refused connection."); 114 System.exit(1); 115 } 116 } 117 catch (IOException e) 118 { 119 if (ftp2.isConnected()) 120 { 121 try 122 { 123 ftp2.disconnect(); 124 } 125 catch (IOException f) 126 { 127 } 129 } 130 System.err.println("Could not connect to server2."); 131 e.printStackTrace(); 132 System.exit(1); 133 } 134 135 __main: 136 try 137 { 138 if (!ftp1.login(username1, password1)) 139 { 140 System.err.println("Could not login to " + server1); 141 break __main; 142 } 143 144 if (!ftp2.login(username2, password2)) 145 { 146 System.err.println("Could not login to " + server2); 147 break __main; 148 } 149 150 ftp2.enterRemotePassiveMode(); 152 153 ftp1.enterRemoteActiveMode(InetAddress.getByName(ftp2.getPassiveHost()), 154 ftp2.getPassivePort()); 155 156 if (ftp1.remoteRetrieve(file1) && ftp2.remoteStoreUnique(file2)) 164 { 165 ftp1.completePendingCommand(); 168 ftp2.completePendingCommand(); 169 } 170 else 171 { 172 System.err.println( 173 "Couldn't initiate transfer. Check that filenames are valid."); 174 break __main; 175 } 176 177 } 178 catch (IOException e) 179 { 180 e.printStackTrace(); 181 System.exit(1); 182 } 183 finally 184 { 185 try 186 { 187 if (ftp1.isConnected()) 188 { 189 ftp1.logout(); 190 ftp1.disconnect(); 191 } 192 } 193 catch (IOException e) 194 { 195 } 197 198 try 199 { 200 if (ftp2.isConnected()) 201 { 202 ftp2.logout(); 203 ftp2.disconnect(); 204 } 205 } 206 catch (IOException e) 207 { 208 } 210 } 211 } 212 } 213 | Popular Tags |