QTcpSocket Übertragungsproblem
Verfasst: 27. Juli 2005 00:32
Hallo,
ich arbeite momentan an einem grafischen Client eines nicht Qt-basierten Servers. Das "Basisprotokoll gestaltet sich ueber telnet bisher folgendermaßen (beispielhaft):
Soviel zur Telnet-Praxis, diese funktioniert auch hervorragend. Der QT-Client startet die Tcp-Verbindung als Thread, baut brav die Verbindung auf und lauscht auf ein readyRead()-Signal um die Rückmeldung in ein QByteArray zu schreiben.Mit der Serverversion beim connect funktioniert das ganze auch. Klickt man im Hauptfenster den disconnect-Button und sendet ein "BYE" an den Socket, wird die Antwort auch empfangen und ein disconnected()-Signal vom Thread gesendet.
Nun zum Problem: Sendet das Hauptfenster/alternativ auch der Thread ein "UPDATE REQUEST", wird in der Antwort vom Server nicht einmal das einleitende "UP" erkannt, das QByteArray für die Serverantwort bleibt scheinbar leer. Danach haengt der Socket und auch ein Disconnect kann nicht mehr ausgeführt werden.
Anmerkung: die 4 Antwortzeilen werden einzeln übertragen, mit abschließendem \n
Ich bin momentan ziemlich ratlos, da die Funktionsweise sich vor allem von dem BYE nicht unterscheidet. Hat vielleicht jemand eine Idee, wo der Denkfehler darin liegen könnte?
Gruß,
Marcel
ich arbeite momentan an einem grafischen Client eines nicht Qt-basierten Servers. Das "Basisprotokoll gestaltet sich ueber telnet bisher folgendermaßen (beispielhaft):
Code: Alles auswählen
Server Version 0.1 connected
>UPDATE REQUEST
UP
R 10 10
F 010 010 asdhdsdaffgklrffhjfsdlfdjfdsfjkhtfhdfjredhfdfhfjdfhsdsds
EUP
>BYE
BYE
Connection terminated
Nun zum Problem: Sendet das Hauptfenster/alternativ auch der Thread ein "UPDATE REQUEST", wird in der Antwort vom Server nicht einmal das einleitende "UP" erkannt, das QByteArray für die Serverantwort bleibt scheinbar leer. Danach haengt der Socket und auch ein Disconnect kann nicht mehr ausgeführt werden.
Anmerkung: die 4 Antwortzeilen werden einzeln übertragen, mit abschließendem \n
Ich bin momentan ziemlich ratlos, da die Funktionsweise sich vor allem von dem BYE nicht unterscheidet. Hat vielleicht jemand eine Idee, wo der Denkfehler darin liegen könnte?
Gruß,
Marcel