none
langsamen Server abfragen RRS feed

  • Frage

  • Hallo,

    ich muss ein Gerät abfragen, was eine XML-Datei liefert, als Text.

    Soweit geht das auch.

    Das Problem besteht darin, das der Server/Gerät recht langsam ist und kurz nach dem Readline, stehen noch nicht alle Daten zur Verfügung.

    Wie verfährt man in so einem Fall mit dem Abfrgen?

    TcpClient socket = new TcpClient("localhost", port
    NetworkStream ns = socket.GetStream();
     
     
    StreamWriter sw = new StreamWriter(ns);
    StreamReader sr = new StreamReader(ns);
     
    sw.Write("GET");
    sw.Flush();
    string s = sr.ReadLine();

    Danke

     


    Dienstag, 10. Juni 2014 20:24

Alle Antworten

  • Hallo ,

    Lese doch einfach Stück für Stück aus, das trennen anhand der NewLine kannste ja auch später machen, falls Du mehrere Zeilen bekommst.

     so ungefähr sollte es klappen

    var tmpBuffer = new List<Byte>();
    var buffer =newbyte[1024];
    var countBytes    = 0;
    while((countBytes = reader.Read(buffer,
    0, buffer.Length))
    > 0)    
            tmpBuffer.AddRange(buffer);

    Viele Grüße

    BlackCoin



    Dienstag, 10. Juni 2014 20:37
  • Das Gerät hält sich nicht an den Standard, deswegen musste ich den Buffer byteweise auslesen und auf das End-Byte prüfen.

    Mittwoch, 11. Juni 2014 08:49