Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hallo,
Ich habe folgendes Problem:
Ich versuche den gesamten Inhalt einer Hashtable auszugeben über einen Server. Das Problem ist, dass ich entweder nur ein einzelnes Key-Value-Paar ausgegeben erhalte (wenn ich println benutze) oder eine einfache Aneinanderreihung der Ausgabe (wenn ich nur print benutze). Ich hätte aber gern die Ausgabe in der Weise, das jedes Key-Value-Paar in einer eigenen Zeile ausgegeben wird.
Im Folgenden gebe ich den Code, den ich verwendet habe (mit println, wobei ich nur ein einzelnes Key-Value-Paar erhalte):
In der class Client:
Code:
// Send request for all staff
pw.println("A");
//Read what is sent back from server
String all = bf.readLine();
if(all.charAt(0)=='*')
{
// Error name not recognised
queryResults.setText("Error");
}
else
{
//Place number on the Text area with message
queryResults.setText("");
queryResults.setText("All Staff: "+ all);
}
In der class Server:
Code:
case'A': {
// All staff required
Enumeration e = numbers.keys();
while (e.hasMoreElements()) {
String all = (String)e.nextElement();
pw.println(all + ": " + numbers.get(all));
}
}
Also so wie du es jetzt dastehen hast, bekommst du nur ein einzelnes Key-Value Paar und wenn du das println in print änderst, dann bekommst du alle Daten aber in einer Zeile? Das ergibt irgendwie keinen Sinn.
Hallo Nemesis,
auch wenn es vielleicht keinen Sinn macht, ist es leider so, zumindest bei der Ausgabe im Client. Wenn ich allerdings den Code aus dem Server nehme und in mein Testprojekt eingebe und pw.println ersetze durch System.out.println, erhalte ich die gesamte Liste, schön säuberlich pro Zeile ein Wertepaar.
Vielleicht muss ich ja was an der Ausgabe im Client ändern? Ich weiß nur nicht, was.
Hallo,
Ich habe mittlerweile ein wenig herumexperimentiert und herausgefunden, dass der Server tatsächlich alle Wertepaare findet und auch ausgibt, wenn ich es ihn direkt ausgeben lasse ohne Einbindung des Client. Also nehme ich an, dass etwas beim Transfer zum Client schief läuft.
Ich könnte mir vorstellen, dass readLine nicht ganz unschuldig ist, weiß aber leider nicht, wie ich es anders machen kann.
Wer kann mir hier helfen?