Announcement

Collapse
No announcement yet.

Datei über Socket senden

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Datei über Socket senden

    Hy wie kann ich eine datei z.b. test.zip in java über einen socket zu einem server senden?

    Ich habe nicht so viel ahnung von sockets darum ist diese frage ev. bescheuert.

  • #2
    Hallo
    in der java.net.* stehen die Funktionen zur Socket-Programmierung.
    wenn du eine gute Verbindung hast geht es über SocketStream().
    Voraussetzung ist, dass der Zielhost ebenfals über socket kommuniziert.
    Zum reinen Versenden kannst du auch Datagramm-Sockets verwenden.
    Hier ein Beispiel für die Verbindung zu einem anderen Host:

    import java.io.*;
    import java.net.*;
    import java.util.*;

    class Connection {
    public Socket socket; // Socket der Verbindung
    public BufferedReader in; // Eingabestream
    public PrintWriter out; // Ausgabestream
    public long time; // Zeit der letzten Aktivität
    public boolean ok = true; // Verbindungsstatus
    private InputStream stream;

    public Connection(Socket socket) {
    // Socket speichern
    this.socket = socket;
    try {
    // Streams Erzeugen
    stream = socket.getInputStream();
    in = new BufferedReader(
    new InputStreamReader(stream, "latin1"));
    out = new PrintWriter(
    new OutputStreamWriter(socket.getOutputStream(),
    "latin1"), true);
    // Zeit des Verbindungsaufbaus merken
    time = new Date().getTime();
    }
    catch (IOException e) { // Bei Fehler
    ok = false; // Verbindung nicht 'ok'
    }
    }

    // liefert true, wenn Daten Verfügbar sind
    public boolean available() throws IOException {
    return stream.available() != 0;
    }

    public void finalize() {
    // Schließen der Streams und des Sockets, wenn
    // die Verbindung gelöscht wird wird
    try {
    in.close(); // Eingabestream schließen
    out.close(); // Ausgabestream schließen
    socket.close(); // Socket schließen
    }
    catch(IOException e) {
    e.printStackTrace();
    }
    }
    }

    über den Writer kannst du dann die datei versenden

    Comment


    • #3
      Hi,

      versuche dieses Beispiel umzusetzen aber momentan habe ich eine Blockade.

      Wo gebe ich den Port an???
      Wo gebe ich den Pfad für die zu versendete Datei an???


      Gruss und vielen Dank

      Comment


      • #4
        hallo?

        kann mir jemand helfen? ist dringend?!

        Comment


        • #5
          Hallo,

          den Port gibst du bei der Socketerstellung an:
          Code:
          Socket clientSocket = new Socket( "die.weite.welt", 80 );
          du kannst aus folgenden Konstruktoren wählen:

          - Socket( String host, int port ) throws IOException Erzeugt einen Stream-Socket und verbindet ihn mit der Port-Nummer am angegebenen Host.

          - Socket( InetAddress address, int port ) throws IOException Erzeugt einen Stream-Socket und verbindet ihn mit der Port-Nummer am Host mit der angegebenen IP-Nummer.

          - Socket( String host, int port, InetAddress localAddr, int localPort ) throws IOException Erzeugt einen Socket für den Host host am Port port und bindet ihn an die lokale Adresse localAddr und an den lokalen Port localPort.

          -Socket( InetAddress address, int port, InetAddress localAddr, int localPort ) throws IOException Erzeugt einen Socket für den durch address gegebenen Host am Port port und bindet ihn an die lokale Adresse localAddr und an den lokalen Port localPort.

          Schreiben und lesen tust du über die Writer/Reader welche in der Connection methode angelegt wurden.

          mfg

          Comment

          Working...
          X