Sockets -> nao consigo dar uma 'resposta' pro meu cliente

segue:

[code]package br.com.ceuma.server;

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

import br.com.ceuma.converter.Converter;

public class Server {

public static void main(String[] args) {
	
	try {
		
		ServerSocket server = new ServerSocket(5000);
		
		while(true){
			Socket cliente = server.accept();
			Thread thread = new Thread(new Converter(cliente));
			thread.start();
		}
		
	} catch (IOException e) {
		e.printStackTrace();
	}
}

}

// soffice.exe -accept=socket,host=localhost,port=8100;urp;StarOffice.ServiceManager
[/code]

[code]package br.com.ceuma.client;

import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;

public class Client {

public static void main(String[] args) throws Exception {
	
	try {
		
		Socket client = new Socket("127.0.0.1", 5000);
		
		OutputStream out = client.getOutputStream();
		InputStream in = new FileInputStream("C:\\autistmo.docx");
		
		BufferedInputStream buffer = new BufferedInputStream(in, 1024);
		
        byte[] b = new byte[1024];
        int len = 0;
        int bytcount = 1024;
		
        while ((len = buffer.read(b, 0, 1024)) != -1) {
            bytcount = bytcount + 1024;
            out.write(b, 0, len);
        }
        
        // resposta
        
		BufferedInputStream buffer2 = new BufferedInputStream(in, 1024);
		FileOutputStream out2 = new FileOutputStream("docs/final.doc");
		
        while ((len = buffer2.read(b, 0, 1024)) != -1) {
            bytcount = bytcount + 1024;
            out2.write(b, 0, len);
        }
        
        out2.close();
        buffer2.close();
        
	} catch (Exception e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
}

}
[/code]

Converter

[code]package br.com.ceuma.converter;

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ConnectException;
import java.net.Socket;

import br.com.ceuma.connection.ConnectionManager;

import com.artofsolving.jodconverter.DocumentConverter;
import com.artofsolving.jodconverter.openoffice.connection.OpenOfficeConnection;
import com.artofsolving.jodconverter.openoffice.converter.OpenOfficeDocumentConverter;

public class Converter implements Runnable {

private Socket socket;
private OpenOfficeConnection manager;
private File doc;
private File pdf;

public Converter(Socket socket) {
	this.socket = socket;
	this.doc = new File("docs/atual.doc");
	this.pdf = new File("pdf/atual.pdf");
}

private void getDocArchive(){
	
	try {
		
		InputStream in = socket.getInputStream();
		BufferedInputStream buffer = new BufferedInputStream(in, 1024);
		
        byte[] b = new byte[1024];
        int len = 0;
        int bytcount = 1024;
		
		FileOutputStream out = new FileOutputStream("docs/atual.doc");
		
        while ((len = buffer.read(b, 0, 1024)) != -1) {
            bytcount = bytcount + 1024;
            out.write(b, 0, len);
        }
        
        out.flush();
        
        //out.close();
        //buffer.close();
		
	} catch (IOException e) {
		System.out.println("Ocorreu um erro no recebimento do arquivo");
	}
}

private void start(){
	
	try {
		this.manager = ConnectionManager.getCurrentInstance();
		this.manager.connect();
	} catch (ConnectException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
}

private void stop(){
	manager.disconnect();
}

public void converter(){

	start();
	
	DocumentConverter converter = new OpenOfficeDocumentConverter(manager);
    converter.convert(doc, pdf);

    stop();
    
}

@Override
public void run() {
	getDocArchive();
	converter();
	reponse();
}

private void reponse() {
	try {
		OutputStream out = socket.getOutputStream();
		InputStream in = new FileInputStream(pdf);
		
		BufferedInputStream buffer = new BufferedInputStream(in, 1024);
		
        byte[] b = new byte[1024];
        int len = 0;
        int bytcount = 1024;
		int i = 0;
		
        while ((len = buffer.read(b, 0, 1024)) != -1) {
            bytcount = bytcount + 1024;
            out.write(b, 0, len);
        }
        
        out.flush();
        out.close();
        buffer.close();
	} catch (IOException e) {
		e.printStackTrace();
		System.out.println(e.getMessage());
	}
}

}
[/code]

Exception:

[quote]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 br.com.ceuma.converter.Converter.reponse(Converter.java:107)
at br.com.ceuma.converter.Converter.run(Converter.java:90)
at java.lang.Thread.run(Unknown Source)[/quote]

alguem da uma ajuda aeh?

ninguem pessoal?