+ Antworten
Ergebnis 1 bis 12 von 12

Thema: Netzwerkprogrammieren in Java: Datei an einen anderen PC schicken

  1. #1
    Dassar
    Gast Avatar von Dassar

    Netzwerkprogrammieren in Java: Datei an einen anderen PC schicken

    Hi Leute,
    ich möchte eine Datei von einem PC zum anderen schicken. Dazu habe ich 2 Programme geschrieben:
    1. Ein Serverprogramm das auf dem "Server PC" läuft und die ganze Zeit auf Client anfragen wartet.
    2. Ein Clientprogramm das auf dem "Client PC" läuft.

    Wenn ich die beiden Programme auf einem Rechner laufen lasse, wird die Datei verschickt.

    Aber wenn ich die das Clientprogramm auf dem "Client PC" starte, sagt mein Serverprogramm:
    java.net.BindException
    : Address already in use: JVM_Bind
    at java.net.PlainSocketImpl.socketBind(
    Native Method)
    at java.net.PlainSocketImpl.bind(Unknown Source)
    at java.net.ServerSocket.bind(Unknown Source)
    at java.net.ServerSocket.<init>(Unknown Source)
    at java.net.ServerSocket.<init>(Unknown Source)

    at DateiServer.main(
    DateiServer.java:38)

    Ich habe die Port Nummer schon öfter geändert aber es tritt immer der selbe Fehler auf
    Was mache ich falsch
    Wäre für jeden Tipp sehr dankbar!

  2. #2
    Aufsteiger/in Avatar von chris12

    Registriert seit
    30.10.07 - 22:40
    Beiträge
    279
    Thanks
    42
    Thanked 13 Times in 11 Posts

    AW: Netzwerkprogrammieren in Java: Datei an einen anderen PC schicken

    poste doch mal die codes

    bb chris12

  3. #3
    Dassar
    Gast Avatar von Dassar

    AW: Netzwerkprogrammieren in Java: Datei an einen anderen PC schicken

    Hi,
    hier ist der Code von meinem Serverprogramm:
    Code:
    import
    
    java.net.*;
    import
    java.io.*;
    public
    class DateiServer {
    privatestaticvoid behandeln( Socket client ) throws IOException {
    File file = new File("c:/test.mp3");
    OutputStream out = client.getOutputStream(); InputStream fileIn = new FileInputStream(file); byte[] buffer = newbyte[1024];
    while (fileIn.available() > 0) { out.write(buffer, 0, fileIn.read(buffer)); }
    fileIn.close();
    }
    publicstaticvoid main(String args[]) {
    while(true) {
    Socket client = null; ServerSocket server = null;
    try{ server = new ServerSocket( 1234); client = server.accept(); behandeln ( client ); server.close();
    }catch( IOException ex) { ex.printStackTrace(); } finally { if( client != null ) { try{ client.close(); } catch(IOException ex) { ex.printStackTrace(); } } }
    } }
    }

    Tut mir leid dass der Code so unleserlich geworden ist. Hab's einfach nicht besser hinbekommen

  4. #4
    Aufsteiger/in Avatar von terra-power

    Registriert seit
    14.4.04 - 15:44
    Beiträge
    435
    Thanks
    0
    Thanked 6 Times in 6 Posts

    AW: Netzwerkprogrammieren in Java: Datei an einen anderen PC schicken

    Und der client? du sagtest ja, der fehler tzritt auf, wenn du das clientprogramm startest.
    stop:

    NOP
    JMP stop

  5. #5
    Dassar
    Gast Avatar von Dassar

    AW: Netzwerkprogrammieren in Java: Datei an einen anderen PC schicken

    Hi,
    ja klar hier ist der Code:
    Code:
    
    
    import
    java.net.*;
    import
    java.io.*;
    public
    class DateiClient { publicstaticvoid main(String args[]) { Socket server = null; int port = 1234; SocketAddress addr = new InetSocketAddress("192.168.2.34", port); try{ server = new Socket(); server.connect(addr, 2000); InputStream in = server.getInputStream(); FileOutputStream fileOut = new FileOutputStream("c:/test1.mp3"); byte[] buffer = newbyte[1024]; while (server.isConnected()) { int bytesRead = in.read(buffer); if (bytesRead == -1) break; fileOut.write(buffer, 0, bytesRead); } fileOut.close(); } catch( UnknownHostException ex) { } catch(IOException ex) { } finally{ if (server != null) { try{ server.close(); } catch (IOException ex) { } } } } }

  6. #6
    Aufsteiger/in Avatar von terra-power

    Registriert seit
    14.4.04 - 15:44
    Beiträge
    435
    Thanks
    0
    Thanked 6 Times in 6 Posts

    AW: Netzwerkprogrammieren in Java: Datei an einen anderen PC schicken

    ok, zum fehler:

    dein system kann die datei nicht finden (ist ja auch klar, da der pfad falsch angegeben ist)

    dadurch wird in den catch block gesprungen, und der server nicht geschlossen. nach abarbeitung des catch blocks wird ein neuer serversocket gestartet, natürlich wieder mit dem selben port. der alte ist jedoch noch aktiv (da nicht server.close ausfgeführt wurde) , und die endlosschleife an exceptions nimmt seinen lauf.

    zum code allgemein: ich empfehle dir eine buch zur pointerarithmetik in java. man merkt, dass du in java noch nicht so sehr bewandert bist, denn durch strikte anwendung von design patterns, hätte so ein fehler nicht auftreten dürfen. zum buch: http://www.javabuch.de/ , da wird viel auf grundsätliche sachen eingegangen.
    stop:

    NOP
    JMP stop

  7. #7
    Dassar
    Gast Avatar von Dassar

    AW: Netzwerkprogrammieren in Java: Datei an einen anderen PC schicken

    Hi,
    Das stimmt leider bin nicht so bewandert in Java. Bin gerade mal 13 Jahre und mache Java auch erst ein jahr
    Der Pfad sieht jetzt so aus:
    File file =
    new File("C:/test.mp3");

    Die Exception kommt jetzt auch nicht mehr aber am anderen Computer kommt die datei nicht an
    Geändert von Dassar (02.04.2008 um 17:03:49 Uhr)

  8. #8
    Aufsteiger/in Avatar von terra-power

    Registriert seit
    14.4.04 - 15:44
    Beiträge
    435
    Thanks
    0
    Thanked 6 Times in 6 Posts

    AW: Netzwerkprogrammieren in Java: Datei an einen anderen PC schicken

    Es muss ja auch c:\\test.exe heißen
    stop:

    NOP
    JMP stop

  9. #9
    Dassar
    Gast Avatar von Dassar

    AW: Netzwerkprogrammieren in Java: Datei an einen anderen PC schicken

    es geht leider immer noch nicht. Aber es kann doch eigentlich nicht sein das ich auf Vista den Pfad anders schreiben muss oder?

  10. #10
    Aufsteiger/in Avatar von terra-power

    Registriert seit
    14.4.04 - 15:44
    Beiträge
    435
    Thanks
    0
    Thanked 6 Times in 6 Posts

    AW: Netzwerkprogrammieren in Java: Datei an einen anderen PC schicken

    Das hat nichts mit Vista zu tun. Windowspfade werden immer mit \ beschrieben, das war schon immer so. Da aber \ eine Sonderbedeutung in Java hat, muss man \\ schreiben.
    stop:

    NOP
    JMP stop

  11. #11
    Dassar
    Gast Avatar von Dassar

    AW: Netzwerkprogrammieren in Java: Datei an einen anderen PC schicken

    ok, hat aber keiner mehr eine idee warum das nicht klappt? Könnte mir dann jemand vielleicht ein anderes beispiel geben?

  12. #12
    morten
    Gast Avatar von morten

    AW: Netzwerkprogrammieren in Java: Datei an einen anderen PC schicken

    code snibbletts poste ich im pastebin

    http://pastebin.com/ so kann ich den code nicht lesen.

    Es kann gut sein, dass Ihr java client server socketprogrammierung korrekt ist,
    aber windows macht probleme.

    zuert wuerde ich von dos shell aus die konnektivitaet mit ftp put oder get testen.

    ftp 192.168.0.4

    das geht prima bei unix, BSD und linux,

    nur manche windowse haben einen ftp client aber keinen server.

    dann wuerde ich das java programm das gleiche machen was Sie eh ueber console machen. Vorausgesetzt es klappt.

    Von windows zu unix klappt immer aber nicht umgekehrt.

    ob java einen windows ftp server ersetzen kann weiss ich nicht.

    ich bin dabei im project glassfish, was einen web application server ist,

    aber ich habe das nie unter windows gemacht.

    windows 2003 server hat IIS,
    das klappt auch allerdings ist das immer noch keinen ftp server.

    ich wuerde einfach opensolaris als live cd reinschieben und dann haben Sie sofort einen funktionierenden ftp server. Knoppix geht auch.

    Please,
    einfach den java code bei pastebin.com posten

    ich habe da ein subdomain.

    http://lordbyte.pastebin.com/

    syntax highlighting java
    retain forever,


    FTP macht leichte probleme wenn mehr als 2GByte filesize durch ethernet LAN soll,
    und SELinux Security enhanced kann blockieren.

    Wenn Sie keine Lust auf Unix haben dann kann man hier anfangen.

    http://www.windowsnetworking.com/

    http://www.windowsnetworking.com/art...ics-Part1.html

    http://www.windowsnetworking.com/art...-Protocol.html

    Es muss nicht ftp sein http mit IIS geht auch.
    Geändert von morten (21.05.2008 um 02:03:07 Uhr) Grund: Sie form der hoeflichkeit halber angepasst.

+ Antworten

Berechtigungen

  • Neue Themen erstellen: Ja
  • Themen beantworten: Ja
  • Anhänge hochladen: Ja
  • Beiträge bearbeiten: Ja
  •