Avatar billede danni03 Nybegynder
13. august 2004 - 14:33 Der er 16 kommentarer og
1 løsning

ftp i java

Hej jeg får en fejl når jeg kompilere denne kode:

Det er linien:  client.connect("localhost"); det er galt med. Jeg ved ikke helt hvad jeg mangler. Koden er lånt af arne_v fra et andet indlæg om ftp.



import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.SocketException;

import org.apache.commons.net.ftp.FTPClient;

public class FtpPut {
    public static void main(String[] args) {
        FTPClient client = new FTPClient();                       
        try {           
            client.connect("localhost");           
            client.login("anonymous", "@");
            InputStream is = new FileInputStream("c:\\z.zip");
            client.setFileType(FTPClient.BINARY_FILE_TYPE);
            OutputStream os = client.storeFileStream("z.zip");
            byte[] b = new byte[1000];
            int n;
            int total = 0;
            while((n = is.read(b)) == 0) {
                os.write(b,0,n);
                total += n;
                System.out.println("bytes: " + total);
            }
            os.close();
            is.close();
            client.disconnect();
        } catch (SocketException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
Avatar billede arne_v Ekspert
13. august 2004 - 14:37 #1
Hvad er fejlen helt præcist ?
Avatar billede arne_v Ekspert
13. august 2004 - 14:38 #2
Avatar billede danni03 Nybegynder
13. august 2004 - 15:22 #3
Der er ikke npget galt med koden... men jeg kan ikke connecte til min localhost:

java.net.ConnectException: Connection refused: connect
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:305)
        at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:171)
        at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:158)
        at java.net.Socket.connect(Socket.java:452)
        at java.net.Socket.connect(Socket.java:402)
        at java.net.Socket.<init>(Socket.java:309)
        at java.net.Socket.<init>(Socket.java:124)
        at org.apache.commons.net.DefaultSocketFactory.createSocket(DefaultSocketFactory.java:52)
        at org.apache.commons.net.SocketClient.connect(SocketClient.java:161)
        at org.apache.commons.net.SocketClient.connect(SocketClient.java:249)
        at FtpPut.main(FtpPut.java:15)
Avatar billede arne_v Ekspert
13. august 2004 - 15:26 #4
Ah.

Det lyder jo som om at du ikke kører en FTP server på din maskine.
Avatar billede danni03 Nybegynder
13. august 2004 - 21:33 #5
Det jeg vil er at jeg har en applet... den opdaterer et billede heletiden. Det jeg vil gøre er, at jeg vil sende et billede fra mit webcam via koden fra appletten. Altså dynamisk kalde maskinen der har åbnet appletten ved at hente hans ip, dernæst vil jeg hente et billede fra hans web-kamera.
Avatar billede danni03 Nybegynder
13. august 2004 - 21:47 #6
Jeg vil egentlig bare have mit billede fra mit web-kamera op til min hjemmeside.
Avatar billede danni03 Nybegynder
13. august 2004 - 22:02 #7
Okay... jeg kan FtpPut virker fint til min ftp.dannij.dk, men jeg vil gøre det den anden vej. Altså ved at GET en fil fra brugeren der "logger på" min side. Så skal de have en ftp-server oppe at køre?
Avatar billede arne_v Ekspert
13. august 2004 - 22:06 #8
Jeg er ikke helt sikke rpå at jeg forstår.

Appletten kører op client.

Hvis applet connecter til localhost, så kræver det at der kører en FTP server
på client. Hvad der sjældent gør.

Men hvis appletten skal vis efra dit webcam så skal den vel også hente
fra din FTP server ikke fra localhost !?
Avatar billede danni03 Nybegynder
13. august 2004 - 22:24 #9
Det er fordi jeg er ved at lave en hjemmeside der skal vise billedet fra "dit" web-kamera når du kommer ind på siden. Det kræver jo at appletten har kendskab til stien hvor filen ligger?
Avatar billede arne_v Ekspert
13. august 2004 - 22:27 #10
Altså:

A er client
B er server

browser på A henter applet fra web server på B
applet kører på A
applet skal vise billeder fra webcam på A

?
Avatar billede simonvalter Praktikant
13. august 2004 - 22:28 #11
du kan ikke regne med at folk kører en ftp. Du kan heller ikke regne med filnavne osv.
Den eneste mulighed jeg kan se du har er at få fat i webcam direkte. Jeg mener det er muligt men der vil nok være lidt flere problemer når det er fra en applet.

kan lige se om jeg kan finde noget læsning... men det du skal er at detecte webcam som er instaleret i OS og prøve at få billedet fra det.
Avatar billede simonvalter Praktikant
13. august 2004 - 22:28 #12
Avatar billede arne_v Ekspert
13. august 2004 - 22:29 #13
Der er 2 problemer:

1)  at kunne få fat i webcam billeder fra java kode

2)  at få lov til at gøre det i en applet (security !)

Jeg tror ikke at nogen af dem er nemme.

FTP server er næppe en relevant løsning. Stort set ingen kører FTP server på en
normal PC.
Avatar billede arne_v Ekspert
13. august 2004 - 22:31 #14
Simons link ser yderst interessant ud !

Det ligner en løsning på #1.

Og #2 kan løse spå sædvanelig vis med signing, permissions etc..
Avatar billede danni03 Nybegynder
13. august 2004 - 22:55 #15
Ja arne_v jeg havde tænkt mig at det skulle foregå på denne måde. Jeg kigger lige på linket.
Avatar billede danni03 Nybegynder
13. august 2004 - 22:58 #16
Det link har jeg kigget lidt på tidligere...
Jeg prøver mig frem og vender tilbage.
Avatar billede danni03 Nybegynder
26. august 2004 - 22:43 #17
lukket
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester