fehler bei socket connection, connection reset o.ä.



  • Hi
    ich hab da ein kleines Problem:
    Hab ein Client-Programm geschrieben, das zu einem Server connectet und 5 OBjekte sendet:

    ungefähr so:

    ObjectOutputStream oout = new ObjectOutputStream(sock.getOutputStream());
    ...
    for(int i=0;i<5;i++)
            {
                oos.writeObject(pack);
                oos.flush();
                return true;
            }
            catch(IOException e)
            {
                return false;            
            }
    }
    

    Der Server besitzt ein Thread, das einen ObjectInputStream(definiert wie oben, nur eben Input nicht Output^^) liest und dann das gelesene pack auf den bildschirm printet:

    public void run()
        {
    
            while(true)
            {
    
                    SendPack pack = new SendPack();
                    try
                    {
                         try
                         {
                            pack =(SendPack) in_stream.readObject();
                         }
                         catch(Exception e)
                         {
                               System.out.println(e.getMessage());
                         } 
                        System.out.println(pack.toString());
                    }
                    catch(DeadConnectionException dce)
                    {
                        System.out.println(dce.getMessage());
                        this.Destruct();
                    }
    
            }
        }
    

    Problem: Wenn ich den Server starte und dannach den Client dann gibt es dreierlei was passieren kann:
    a) der Client sagt: Broken Pipe und der Server sagt: null (Exception mit keiner Message).
    b) Der Client schickt seine 5 Packete normal ab aber der Server sagt: Exception: Connection reset.
    c) Der Client schickt seine 5 Packete normal ab und der Server nimmt sie normal an,

    mal passiert das eine, mal das andere, sieht willkürlich aus. woran könnte das liegen?
    ( fall c) ist das was eigentlich passieren soll^^)

    danke im voraus, Christoph


Anmelden zum Antworten