Auf Thema antworten

Klar - da habe ich nicht gut genug hingeschaut. Das Problem ist, dass der Client einen ObjectInputStream erzeugt:

[CODE=java]ObjectInputStream ois = new ObjectInputStream(s.getInputStream());[/CODE]

Dieser erwartet natürlich sofort die Initialisierung, d.h. es werden ein paar erste Bytes gelesen und auf die wartet der Client.


Also entweder das erst erzeugen, wenn die Nachricht gesendet wurde:

[CODE=java]            writer = new PrintWriter(s.getOutputStream());

            writer.println("select * from leute");

            writer.flush();

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

            ArrayList <String> al = (ArrayList<String>)(ois.readObject());

            System.out.println(al.toString());[/CODE]


Oder dafür sorgen, dass der Server die Initialisierung sofort macht:


[CODE=java]                System.out.println("Bin hier");


                OutputStream os = sock.getOutputStream();

                ObjectOutputStream oos = new ObjectOutputStream(os);

                oos.flush();

               

                if((nachricht = reader.readLine()) != null)

                {

                    System.out.println("Empfangene Nachricht: " + nachricht);

                }[/CODE]


Beides behebt die Problematik - aber nur eins von beidem ist notwendig.



Oben