Connection reset by peer: socket write error

Bitte aktiviere JavaScript!
Ich habe bei folgenden den Error:
Java:
java.net.SocketException: Connection reset by peer: socket write error
    at java.net.SocketOutputStream.socketWrite0(Native Method)
    at java.net.SocketOutputStream.socketWrite(Unknown Source)
    at java.net.SocketOutputStream.write(Unknown Source)
    at java.nio.file.Files.copy(Unknown Source)
    at java.nio.file.Files.copy(Unknown Source)
    at x46.Server.Server_in.run(Server_in.java:59)
    at java.lang.Thread.run(Unknown Source)
Mein Client (senden der Datei):
Java:
Socket client = new Socket("localhost", 16102);
        // strems
        // out
        OutputStream outStream = client.getOutputStream();
        PrintWriter out = new PrintWriter(outStream);
 
        // in
        InputStream inStream = client.getInputStream();
        BufferedReader in = new BufferedReader(new InputStreamReader(inStream));
     
        // -------------------------------------------------------
     
        File file = new File("send.zip");
        // init array with file length
        byte[] bytesArray = new byte[(int) file.length()];
          FileInputStream fis = new FileInputStream(file);
          fis.read(bytesArray); //read file into bytes[]
          fis.close();
 
          outStream.write(bytesArray);
          outStream.flush();
       
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
Server(empfängt die Datei):
Java:
        try {
            ExecutorService executor = Executors.newFixedThreadPool(2);
            // server starten
            ServerSocket server01 = new ServerSocket(16102);
            System.out.println("Warte auf clients auf dem Port " + server01.getLocalPort());
            // --------------------------------------------------------------
            while (true) {
                // connection aktiviren
                Socket connection = server01.accept();
                System.out.println("Client verbingung unter: " + connection.getRemoteSocketAddress());
                // -------------------------------------------------------------------
                // strems
                // out
                OutputStream outStream = connection.getOutputStream();
                PrintWriter out = new PrintWriter(outStream);
                ObjectOutputStream oos = new ObjectOutputStream(outStream);
                // in
                InputStream inStream = connection.getInputStream();
                BufferedReader in = new BufferedReader(new InputStreamReader(inStream));
                // ------------------------------------------------------------
                // Path path = Paths.get("test.zip");
                File f = new File("test.zip");
                Files.copy(f.toPath(), outStream);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
(das Programm ist um eine zip Datei zu verschicken)
Also woher kommt der Error?
 
Zuletzt bearbeitet:
A

Anzeige




Vielleicht hilft dir unser Java-Tutorial hier weiter —> (hier klicken)
Für den Empfang bietet es sich für gewöhnlich an, auch etwas zu lesen...

Du musst serverseitig den inStream auch verwenden. Und die ganzen Writer/Reader-Geschichten schmeißt Du am besten ganz raus: Du verschickst eine Zip-Datei, also binäre Daten und keine Zeichenketten.
 
Wie im anderen Thread gesagt: nimm für den Client auch die Files-Variante, bei mir läuft es damit problemlos.
 
A

Anzeige




Hier lernst du alle wichtigen Java-Grundlagen.
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben