Poblema arquivo+xml

0 respostas
magemelli

Daê galera do GUJ, tô com um problema que tá me incomodando...
Eu tenho uma conexao via socket e quero passar um xml pro cliente, porém ao passar o arquivo ele salva um arquivo vazio.
queria saber se tem(e com certeza tem) algo que eu esqueci...
eis o meu código do Servidor

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

        CatServidor cs = new CatServidor();
        // cria o nosso socket
        ServerSocket servsock = new ServerSocket(13267);//Problema aqui
        System.out.println("Aguardando Conexão......");
        Socket sock = servsock.accept();
        while (true) {
            System.out.println("Conexão aceita: " + sock);
            try {
                ArrayList<produto> prodList = cs.dao.listar();
                XMLArquivo.ExportXMLProdutos(prodList);
                String myFile = "c:\\catalogoServidor.xml";
                //          envia o arquivo (transforma em byte array)
                byte[] mybytearray = new byte[(int) myFile.length()];
                FileInputStream fis = new FileInputStream(myFile);
                BufferedInputStream bis = new BufferedInputStream(fis);
                bis.read(mybytearray, 0, mybytearray.length);
                OutputStream os = sock.getOutputStream();
////envia
                System.out.println("Enviando...");
                os.write(mybytearray, 0, mybytearray.length);
                os.flush();

                servsock.close();
            
            } catch (IOException ex) {
                ex.printStackTrace();
            } catch (Exception e) {
                System.out.println("erro ao buscar os dados" + e);
                e.printStackTrace();
            }

e o meu cliente

public class DaoCliente {

    XMLFactory xml;
    private byte buffer[];
    //  FileInputStream fs;

    public ArrayList<Produto> Conecta() throws ConnectException, IOException, JDOMException {
        ArrayList<Produto> prod = new ArrayList<Produto>();
        String end = "c:\\";
        String arq = "catalogoCliente.xml";
        try {
            //estabelece conexao
            Socket sock = new Socket("127.0.0.1", 13267);
            // DataInputStream para processar os bytes recebidos
            DataInputStream entrada = new DataInputStream(sock.getInputStream());
            //FileOuputStream para salvar o arquivo recebido
            FileOutputStream file = new FileOutputStream(end + arq);
            //Busca o XML salvo no C:

            //   BufferedInputStream in = new BufferedInputStream(sock.getInputStream());
            //     BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(end+arq));

            int len = 0;
            while ((len = entrada.read(buffer)) > 0) {
                file.write(buffer, 0, len);
                //System.out.print("#");
            }


            prod = xml.importXML();
            sock.close();
            return prod;

        } catch (ConnectException e) {
            e.printStackTrace();
        }
        return prod;

    }
}

Obrigado se puderem me ajudar

Criado 15 de setembro de 2009
Respostas 0
Participantes 1