Über einen QSocket bin ich mit einem Controller verbunden. Je nachdem was ich ihm schicke, führt er verschiedene Operationen aus. Bei einigen Befehlen die geschickt werden, liefert er mir einen Wert zurück. Diesen Wert kann ich auch mit
connect( QSocket, SIGNAL(readyRead()), SLOT(eineFunktion))
auslesen.
Problem ist aber, dass ich diesen Wert als Rückgabewert für den weiteren Programmablauf benötige und erst dann mit dem Programmcode fortsetzen will.
Da hab ich mir gedacht ich füge nach dem Befehl, der mir einen Wert vom Controller zurückliefert, folgendes ein, und lasse das connect und SIGNAL(readyRead) weg:
QTextStream sendstream(gsocket);
sendstream << "Code für Rückgabewert von Controller";
while ( gsocket->canReadLine() )
{
textBrowser_status->append( gsocket->readLine() );
}
( textbrowser dient hierbei nur zur Darstellung readline wird eigentlich
in Variable gespeichert)
Dummer weise funktioniert dieser Code immer erst nach dem zweiten Aufruf. Es liegt nicht daran, dass der Controller und das Netzwerk eine Weile benötigen für das Sende und auch die while Schleife zweimal nacheinander zuschreiben oder den befehl zweimal nacheinander zu senden brachte nix.
Wie bewerkstellige ich es nun, das das Programm erst weiter macht wenn es diesen Wert vom Controller empfangen hat??? Mit dieser connect und SIGNAL methode funktioniert das jedenfalls so wie ich es oben gemacht habe nicht.
Ich hoffe auf eine Hinweis sofern die Problematik anschaulich beschrieben wurde