Merkwürdiges Verhalten der Netzwerk-Funktionen



  • Hallo alle miteinander,

    ich sitze gerade vor meinem Projekt und ein scheinbar unbegründeter Fehler treibt mich zur WeißGlut.

    Ich habe ein Programm, dass über QTcpSocket zu einem Server verbindet und von diesem Daten empfängt.
    Diese kommen nur selten komplett an, meistens werden nicht die gesamten Daten erhalten.
    Es tritt zufällig auf.
    Mal geht es, mal nicht, die Stellen an denen die Daten aufhören scheinen jedoch immer gleich zu sein
    Ich habe keine Ahnung, woran das liegen kann.

    Hier die Empfangsfunktion:

    QString returnString;
    
        returnString = QString(QString::fromUtf8(socket->readAll()));
    
        if(returnString.endsWith("%#"))
        {
        	returnString.chop(2);
        }
    
        return returnString;
    

    Wenn jemand eine Idee hat, woran es liegen könnte, wäre ich sehr dankbar.

    EDIT:
    Ich habe mittlerweile festgestellt, dass alle Daten korrekt vom Server versendet werden, der Client jedoch nicht alles empfängt.

    Ciao und Danke im Voraus,

    Prof. MAAD



  • dann lies halt solange bis du alles hast.



  • hmmm.. der beitrag kommt mir bekannt vor, hab ich vor 2 minuten schonmal im qtforum (http://www.qtforum.de) gelesen 😃

    wie dort auch schon erwähnt, nutze QByteArray und nicht QString auf grund des "\0" zeichens, nachdem ein string abgeschnitten wird (sofern so eins natürlich versendet wird.)



  • Danke euch allen für eure Antworten.

    Ich habe die "Lösung" des Problems mittlerweile selbst gefunden.

    Der Fehler lag einzig und allein an meiner Maschine.
    Auf allen anderen Rechnern tritt der Fehler nicht im entferntesten auf.

    Danke für eure Hilfe und Ciao,

    Prof. MAAD


Anmelden zum Antworten