Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    214

    [JAVA] scrittura su server

    Non riesco ad effettuare una scrittura di un file su un server. Il codice che utilizzo è il seguente:

    codice:
     
    URL u=new URL("user:pasw:ftp.serv.it/dir/file");
    URLConnection uc=u.OpenConnection();
    uc.setDoOutput(true);
    uc.connect();
    OutputStream o=uc.getOutputStream(); \\ riga che genera errore
    o.write(buf,0,64); \\buf è un array di byte
    o.flush();
    o.close();
    L'errore che viene generato è il seguente: PROTOCOL DOESN'T SUPPORT OUTPUT.

    Qualcuno mi sa spiegare dove sto sbagliando?

  2. #2
    ma sei sicuro che si possa fare una cosa di questo tipo?

    l'errore ti dice che il portocollo utilizzato (TCP/ip servizio FTP) non è supportatol l'output
    "durante i primi 5 miuti di pioggia nel bosco c'è ancora asciutto, poi quando smetterà di piovere nel bosco cadranno gocce per 5 minuti.....la natura ha un'ottima memoria..."

    http://www.kumbe.it

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    214
    mi sai fare un esempio funzionante?

  4. #4
    Utente di HTML.it L'avatar di Mods
    Registrato dal
    Jun 2004
    Messaggi
    302
    Nel esempio messo da te stai semplicemente inviando dei dati al server, mica scrivendo dei file.
    Per scrivere un file in FTP devi usare i comandi del protocollo:

    Example
    codice:
      //richiesta di scrittura file su ftp
      o.write(new String("STOU nomeFile").getBytes());
    Ci sono 10 tipi di persone al mondo: quelli che conoscono il codice binario, e quelli che non lo conoscono!

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    214
    anche se è come dici tu, in ogni caso l'errore viene generato prima, all'apertura della connessione

  6. #6
    Utente di HTML.it L'avatar di Mods
    Registrato dal
    Jun 2004
    Messaggi
    302
    se togli la riga uc.setDoOutput(true); che errore ti dà?
    Ci sono 10 tipi di persone al mondo: quelli che conoscono il codice binario, e quelli che non lo conoscono!

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    214
    Originariamente inviato da Mods
    se togli la riga uc.setDoOutput(true); che errore ti dà?
    Non cambia niente, quel metodo pare che serva solo per il modo POST del protocollo http. Nessuno ha un esempio che usi HttpClient per poter scrivere un file su un server?

  8. #8
    Utente di HTML.it L'avatar di Mods
    Registrato dal
    Jun 2004
    Messaggi
    302
    ma non puoi fare semplicemente un roba così:

    codice:
    Socket s=new Socket("indirizzo FTP",21);
    BufferedReader socketIn;
    DataOutputStream socketOut;
    socketIn=new BufferedReader(new InputStreamReader(s.getInputStream()));
    socketOut = new DataOutputStream(s.getOutputStream());
    
    socketOut.wirteBytes("COMANDO FTP"+"\r\n");
    String risposta=socketIn.readLine();
    Ci sono 10 tipi di persone al mondo: quelli che conoscono il codice binario, e quelli che non lo conoscono!

  9. #9
    Se non ricordo male la porta 21 è usata solo per inviare e ricevere comandi , mentre per inviare e ricevere dati si usa la 22.

    Ciauz
    Lang=Java
    Ambiente = Eclipse forever
    Ubuntu & Win XP Pro

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.