Seite 1 von 1

Konzeptproblem

Verfasst: 17. Oktober 2010 18:45
von dazedly
Ich bin gerade dabei einen xmlrpc Server gegen einen eigenen Server mit eigenem Protokol zu schreiben. Das Protokoll ist fast fertig und erfüllt schon fast alle erwünschten Anforderungen. Jetzt habe ich nur folgendes Problem:
Es soll zwischen Server und Client nur eine bestehende Verbinung existieren. Im Code habe ich dann mehrere Stellen, welche auf diese Verbindung zugreifen sollen und eine Anfrage abschicken und auf diese dann eine Antwort erhalten sollen.
Könnt ihr mir Tipps geben, wie ich genau diesen Vorgang gestalten soll?

Eine Verbindung kann ich schon aufbauen und die Pakete können Client und Server auch schon "verstehen".

Verfasst: 17. Oktober 2010 19:25
von Christian81
Also nur kurz - wir haben ein ähnliches Problem
Wir haben ein (mehr oder weniger globales) Kommunikationsobjekt welches Funktionen zu Anfrage bereitstellt und ankommende Pakete auswertet und diese per Signals weiterverteilt. Mehr eigentlich nicht.

Verfasst: 17. Oktober 2010 20:12
von dazedly
Mir ist jetzt nur nicht klar, wie ich auf mein bestehendes Clientobjekt Global zugreifen soll.

Verfasst: 17. Oktober 2010 20:18
von Christian81
Must Du doch nicht - das ist nur bei uns der Fall

Verfasst: 17. Oktober 2010 21:40
von dazedly
Ich habe jetzt aus meiner Client Klasse eine Singelton gemacht und versuche mit der Klasseninstanz das QTcpSocket zu benutzen. Ich bekomme aber folgenden Fehler:

QNativeSocketEngine::write() was not called in QAbstractSocket::ConnectedState

Den Pointer den ich über die Instanz bekomme, ist der selbe der auch zum Connecten benutzt wird. Ich habe keine Idee mehr :(

Verfasst: 17. Oktober 2010 22:19
von dazedly
waitForConnected war das Zauberwort. Jetzt ist nur noch die Frage, wie ich an die Daten komme für den return meiner Funktion.

Code: Alles auswählen


Client client;
	client.connectToServer();
  	PacketRequest *bla = new PacketRequest;
 	PacketResponse response = Client::getInstance()->sendPacket(bla);
Habt ihr eine Idee?