1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

java XML über socket schicken, server blockiert

  • wuz_thomas
  • 23. Juni 2006 um 17:29
  • Unerledigt
  • wuz_thomas
    12
    wuz_thomas
    Mitglied
    Reaktionen
    1
    Punkte
    1.501
    Beiträge
    195
    • 23. Juni 2006 um 17:29
    • #1

    Hi! Aus irgendeinem grund blockiert der Server beim einlesen des inputstreams sobald ich auf dem client auf den socket inputstream zugreife.

    Client:

    Code
    Socket socket = new Socket(server, port); 
    
                OutputStream out = socket.getOutputStream();
                Document xmlDoc = Marshaller.getInstance().marshall(className, methodName, returnType, params);
                Source src = new DOMSource(xmlDoc); 
                Result dest = new StreamResult(out); 
                aTransformer.transform(src, dest); 
                out.flush();
                PrintWriter pwriter = new PrintWriter(out,true);
                /* wenn ich den DataInputStream tkiviere blockiert der Server
                DataInputStream in = new DataInputStream(socket.getInputStream());
                BufferedReader bin = new BufferedReader( new InputStreamReader(in));
                readInput(in);
                String fromServer;
                while ((fromServer = bin.readLine()) != null) {
                    System.out.println(fromServer);
                }
                */
                out.close();
                pwriter.close();
                //in.close();
                socket.close();
    Alles anzeigen

    Server:

    Code
    in = socket.getInputStream();
                readInput();
                handleRequest();
                PrintStream os = new PrintStream(socket.getOutputStream());
                Document xmlDoc = at.evs.server.Marshaller.getInstance().marshall(returnType, result);
                Source src = new DOMSource(xmlDoc); 
                Result dest = new StreamResult(os); 
                TransformerFactory tranFactory = TransformerFactory.newInstance(); 
                Transformer aTransformer = tranFactory.newTransformer();
                aTransformer.transform(src, dest); 
                os.flush();
                os.close();
                socket.close();
    Alles anzeigen

    jemand eine idee parat?

  • MichiK
    9
    MichiK
    Mitglied
    Reaktionen
    1
    Punkte
    786
    Beiträge
    153
    • 24. Juni 2006 um 00:11
    • #2

    Ein bißl zu wenig Source um ein mögliches Problem zu erkennen

    source von

    readInput();
    handleRequest();

    des servers wäre interessant

    Informatik @ TU Wien (1998 - 2005)

  • wuz_thomas
    12
    wuz_thomas
    Mitglied
    Reaktionen
    1
    Punkte
    1.501
    Beiträge
    195
    • 24. Juni 2006 um 13:34
    • #3

    argh, big thx für deine anteilnahme! habs jetzt so gelöst, dass ich aus dem DOM-tree ein xml-document mache, dann das xml-document in einen string einlese und einfach den string als ganzes rüberschicke.. nicht die eleganteste lösung aber es funktioniert.

    würde mich aber trotzdem interessieren wieso der server da blockiert hat ohne zumindest einmal in die schleife zum einlesen hineinzugehen, aber vielleicht hat ja jemand aus meiner gruppe noch den alten code für readInput();
    handleRequest();
    des servers..

  • Maximilian Rupp 27. Dezember 2024 um 12:06

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Rechtliches

Impressum

Datenschutzerklärung