Erro com ObjectInputStream e ObjectOutputStream

Olá pessoal do portal!

Estou trabalhando com arquivos, fazendo download e upload via socket.

Testei o meu upload e funcionou normal, mas o problema é que ele substitui um arquivo caso tenha o mesmo nome.

Então tentei fazer o seguinte: caso haja um arquivo com o mesmo nome no servidor, volta-se o objeto, com a informação de que o arquivo ja existe, dai pergunta para o usuário se deseja substituir ou nao o arquivo.

Para fazer isso, tentei usar:

s = new Socket("127.0.0.1", portaServidor);         
            entrada = new ObjectInputStream(s.getInputStream());
            entradaSubstituir = new ObjectInputStream(s.getInputStream());

e

saida.writeObject(arquivo);
            arquivo = (ArquivoVO)entrada.readObject(); 

Tanto para mandar pelo método fazerUpload() quanto no método substituir().

Substituir é chamado caso o usuário escolha “substituir”.
Não deu certo, pois acusava-se uma exception quando eu tentava usar o mesmo ObjectInputStream e ObjectOutputStream.

Então tentei fazer o seguinte:

s = new Socket("127.0.0.1", portaServidor); entrada = new ObjectInputStream(s.getInputStream()); entradaSubstituir = new ObjectInputStream(s.getInputStream()); saida = new ObjectOutputStream(s.getOutputStream()); saidaSubstituir = new ObjectOutputStream(s.getOutputStream());

Mas não funciona… dessa vez não dá nenhuma exception, mas o programa simplesmente fica completamente parado na terceira linha acima,

            entradaSubstituir = new ObjectInputStream(s.getInputStream());

Como eu posso resolver esse problema??? Eu pensei em criar um segundo socket inclusive, mas não poderia pois a porta já estaria sendo usada, certo?

Alguem me ajude!!!

Grato!!
Roni Lenhardt

Olha porque você não tenta fazer usando FilwInputStream ou invez de pegar o inputStream via socket? Alem de ser mais fácil eu tive problema pegando o input Stream via sockets quando eram usadas em SOs diferentes. No caso ela vinha com o caminho do windows e se eu usasse em um So unix dava pau!! Usando FileInputStream eu passava um objeto File como parâmeto. A classe File tem o método exists e você pode testar isso também!

Tudo bem… vo da uma olhadinha nisso…

mas alguem sabe me dizer pq eu nao posso usar dois

ObjectInputStream(s.getInputStream());

e dois

ObjectOutputStream(s.getOutputStream());

com o mesmo socket!?

Alguma ideia?

Eu preciso reenviar o mesmo arquivoVO mas não funciona de jeito nenhum!