![]() |
|
|
Themen-Optionen |
|
|
Nach oben #1 |
|
Gast
Beiträge: n/a
|
Hi Leute
Ich habe da ein kleines Problem. Ich will ein Prgramm schreiben, das sich mit einem FTP-Server verbindet und dann bestimmt Dateien (*.log) herrunter läd. Meine erste Frage ist, wie verbinde ich mich mit einem FTP-Server? Ich hab da schon al gegoogeltund bin soweit gekommen: Code:
public ftp (InetAddress server, String username, String pass) throws IOException
{
try
{
ftpc = new FtpClient ();
ftpc.openServer (server.getHostName());
ftpc.login (username, pass);
}
catch(Exception e)
{
System.out.println(e.toString());
}
}
Vielen Dank schon mal im Vorraus. Euer Raffy |
|
|
|
Nach oben #3 |
|
Gast
Beiträge: n/a
|
musst schon einiges beachten, passiv/activ mode, ascii/binär übertragung, Socket verbindung herstellen, Ftp commands sollte dein client auch kennen bzw. auswerten können, und zu guter letzt down und uploaden..... exceptions abfangen, gibt einige vorgefährtigte klassen wo man auf methoden zugreifen kann, aber selbst ist der mann
hier mal nen klitzekleines ausschnitt wie der anfang ist [code] package edu.fhm.mp3tool.ftpclient; import java.io.*; import java.net.*; import java.util.StringTokenizer; public class FTPClient { private String host = ""; private String userName = ""; private String pw = ""; private String acc = ""; private int controlPort = 21; private Socket socket; private String serverResponse = ""; private String reply = ""; private boolean passivMode = false; private DataInputStream in; private DataOutputStream out; private final static int ASCII_MODE = 1; private final static int BINARY_MODE = 2; public FTPClient(){ } public void ftpConnect(String server, String user, String password) throws IOException, UnknownHostException, FTPException{ this.host = server; this.userName = user; this.pw = password; socket = new Socket(server, controlPort); in = new DataInputStream(new BufferedInputStream(socket.getInputStream())); out = new DataOutputStream(new BufferedOutputStream(socket.getOutputStream())); getServerResponse(); ftpLogin(user, password, acc); } // serverResponse enthält komplette Msg. // reply nur die letzte Zeile private void getServerResponse() throws FTPException, IOException{ reply = ""; serverResponse =""; while(true){ String line = in.readLine(); if(line == null) throw new FTPException(FTPException.NO_SERVER_RESPONSE_ERROR ,reply); if(line.length() < 3) throw new FTPException(FTPException.UNKNOWN_SERVER_RESPONSE_ ERROR,reply); serverResponse += line + "\n"; if(!checkReply(line)){ reply = line; break; } } System.out.print(serverResponse); System.out.println(reply); } // Wenn das Zeichen nach dem Code '-' ist dann handelt es sich um eine mehrzeilige Antwort private boolean checkReply(String line){ return line.charAt(3) == '-'; } private void ftpSendCommand(String command) throws IOException, FTPException { if (out != null){ System.out.println(command); out.writeBytes(command + "\r\n"); out.flush(); getServerResponse(); } } private void ftpLogin(String user, String password, String account) throws IOException, FTPException { ftpSendCommand("USER " + user); // (230) Benutzer erfolgreich angemeldet // Falls nur Username erforderlich zur Anmeldung if(reply.substring(0,3).equals("230")){ System.out.println("Benutzer angemeldet, bitte fortfahren"); return; } // (331) Benutzername OK, Kennwort erforderlich if(reply.substring(0,3).equals("331")){ System.out.println("Benutzername OK, Kennwort erforderlich"); ftpSendCommand("PASS " + password); // (331) Benutzerkonto zur Anmeldung erforderlich if(reply.substring(0,3).equals("332")){ System.out.println("Benutzerkonto zur Anmeldung erforderlich"); ftpSendCommand("ACCT " + account); } // (230) Benutzer erfolgreich angemeldet if(reply.substring(0,3).equals("230")){ System.out.println("Benutzer angemeldet, bitte fortfahren"); return; } } closeSocket(); throw new FTPException(FTPException.LOGIN_ERROR,reply); } . . . . } |
|
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| VCS ohne Server über FTP | pago | Tools, Server, Betriebssysteme | 10 | 06.08.2007 14:59 |
| WebDAV oder FTP? | Jan | Tools, Server, Betriebssysteme | 15 | 11.07.2007 14:06 |
| Apache kann nicht gestartet werden. | Jan | Tools, Server, Betriebssysteme | 11 | 23.11.2006 09:26 |
| Was ist BelBrest.com FTP Server ? | CIX88 | Plauderecke | 4 | 25.08.2006 21:08 |
| ftp client | WurstBrot | Allgemeine Java-Programmierung | 7 | 05.09.2005 07:47 |