Jump to content

[Resolvido] Sockets + ObjectOutputStream + ObjectInputStream


hulkPT
 Share

Recommended Posts

Viva estou usar sockets numa pequena aplicação cliente - servidor.

Comecei por implementar funções que enviam Strings para o sockets com o DataOutputStream e o DataInputStream

public void enviarMensagem(String pedido){
        try{
            dataOut.writeUTF(pedido);
        }catch(IOException e){
            System.out.println("Erro ao enviar pedido: "+e);
        }
    } {...}

dessa maneira envio e recebo mensagens sem problemas...

Quando mando um objecto com o ObjectOutputStream e o ObjectInputStream o objecto chega ao destino consigo fazer o que quero com ele mas quando tento mandar um novo objecto o socket fecha e nao consigo enviar... nao percebo...

public void mandaObject(Object o)
    {
        try
        {
            //ObjectOutputStream Out = new ObjectOutputStream(this.sock.getOutputStream());
            objOut.writeObject(o);

            objOut.flush();
            objOut.close();
        }
        catch (IOException ex)
        {
            System.out.println("Erro:"+ex);
        }
    }

cumps

HulkPt

Link to comment
Share on other sites

Pelo pequeno excerto que colocaste, aquele close está a fechar a stream, eventualmente podes estar a abrir novamente noutro lado, mas o que estás a fazer é, efectivamente, fechar a stream. Ao fechares a stream estás a fechar o socket.

Agora, se noutro lado crias outras instâncias ou não isso já não dá para ver. Se fizeres um debug, em que situação é que o socket passa a estar fechado?

Link to comment
Share on other sites

Bem agora que retentei já funciona se eu tirar o close... Não percebo... Quando vi que nao conseguia mandar o segundo objecto o que me veio logo a cabeça foi por o close em comentario e mesmo assim nao funcionava... só se eu quando tentava so tirava no servidor ou no cliente e num deles ficava la o close... nem acredito que perdi tanto tempo por causa disso tive de mudar as mensagens que enviava todas e mandava string's com caracteres a separar os campos e usei uma funcao para descontactenar tudo... horas e horas perdidas... agora voltar a por tudo como antes... sem backup's... mais umas horas... la terá de ser!

Obrigado pela ajuda foi muito util!

cumps

hulkPT

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.