ich wollte ein kleines Programm schreiben was mir anzeigt ob neue Emails vorliegen. Ich weiß sowas gibts schon hundertfach aber ich wollte mir halt mal mein eigens schreiben, dies soll auch zur Übung dienen.
So nun zu meinem Problem. Ich habe folgenden Code mal dazu geschrieben:
Dies ist wirklich sehr grob geschrieben zunächst ich wollte erst mal mir den Ablauf klar machen. Das Problem ist jetzt, daß das login super funktioniert aber wenn ich dann noch ein show in der main Funktion aufrufe scheint dies aufgrund des Application Threads zu früh ausgeführt zu werden. Es sollte eigentlich so ablaufen das nach jedem Befehl gewartet wird das alles vom Server gelesen wurde und dann soll der nächste Befehl erst abgeschickt werden. Kann mir von euch jemand vielleicht sagen wie man das umsetzt. Ich habe schon mit der "waitForReadyRead" Funktion experimentiert aber leider hat das nicht so geklappt wie ich mir das vorgestellt habe. Ich wäre für eine kleine Hilfe sehr dankbar.
Ahh alles klar das ist auch eine Möglichkeit vielen Dank. Ich habe das jetzt so gemacht (Code ist unten) das klappt auch super. Alles was mit abfangen von Fehlern usw zu tun hat kommt noch alles ich sag ja das war ganz grob umrissen was ich versucht habe.
Nehm ich das raus funktioniert es nicht mehr, weil wie ich oben beschrieben habe ja die Funktion show zu schnell aufgerufen wird dann ist aber der Socket noch gar nicht verbunden. Ich denke das hängt mit dem Application Thread zusammen, aber da bin ich mir nicht sicher.
Ich habe es jetzt mal genauso gemacht wie du es beschrieben hast. Aber leider geht es nicht wenn ich in deinem Code keine "waits" einbaue klappt es nicht.
Das ist keine Fehlerbeschreibung. Schreibe jeweils präzise, was du erwartest und was du bekommst (qDebug() - Ausgaben). In deinem Fall wird's wohl so sein, dass das erwartete Datenpaket etwas grösser ist und daher mehrere "readyRead()"-Signals ausgelöst werden. TCP ist grundsätzlich als "Stream" zu betrachten, was bedeutet, dass du solange davon lesen musst, bis das ganze erwartete Datenpaket angekommen ist... sowas wie:
Ich bin daran, einen Mail-client für verschlüsselten/signierten Mailverkehr zu programmieren. Momentan ist nur Pop/Smtp unterstützt, du kannst aber gerne mal schauen, wie wir es dort gemacht haben. Und wenn du Lust hast, kanntst du uns natürlich auch gerate im Bereich IMAP unterstützen... http://sourceforge.net/projects/nlcreator/