1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Exception in thread "main" java.net.SocketException: Connection reset

Estou tendo uma perda de conexão apos meu programa salvar o arquivo no pc, ele salva sem erro nenhum porem depois em vez de continuar o codigo ele da o erro:

https://www.filepicker.io/api/file/pBqcsnjxRr6676c0fMlC

Sendo que esse erro so ocorre no servidor, no cliente ele n acontece, n sei mais o que posso modificar para evitar tal erro, peço que me ajudem.

Segue os Códigos base:

Cliente:

package Cliente;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.Socket;
import java.util.Scanner;

public class Client {

    public static void main(String[] args) throws Exception {
        Scanner tc = new Scanner(System.in);
        System.out.println("File:");
        String fName = tc.nextLine();
        File f = new File(fName);
        FileInputStream in = new FileInputStream(f);
        System.out.println(f);
        Socket socket = new Socket("localhost", 5678);
        OutputStream out = socket.getOutputStream();
        OutputStreamWriter osw = new OutputStreamWriter(out);
        BufferedWriter writer = new BufferedWriter(osw);
        writer.write(f.getName() + "\n");
        writer.flush();
        int tamanho = 4096; // buffer de 4KB  
        byte[] buffer = new byte[tamanho];
        int lidos;
        while ((lidos = in.read(buffer, 0, tamanho)) != -1) {
            out.write(buffer, 0, lidos);
        }
    }
}

Servidor:

package Servidor;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {

    public static void main(String[] args) throws IOException {

            ServerSocket server = new ServerSocket(5678);
            Socket clSocket = server.accept();
            InputStream in = clSocket.getInputStream();

            InputStreamReader isr = new InputStreamReader(in);

            BufferedReader reader = new BufferedReader(isr);

            String fName = reader.readLine();
            System.out.println(fName);


            File f1 = new File("C:/Users/Casa/test.jpg");
            FileOutputStream out = new FileOutputStream(f1);
            int tamanho = 4096; // buffer de 4KB  
            byte[] buffer = new byte[tamanho];
            int lidos;

            while ((lidos = in.read(buffer, 0, tamanho)) != -1) {


                System.out.println(lidos);

                out.write(buffer, 0, lidos);
                System.out.println("1");
                out.flush();
            }



    }
}
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags threads sockets java connection ou faça a sua própria pergunta.