wir haben zurzeit zwei Programme laufen, die sich über einen Socket miteinander unterhalten. Programm A ist unter Qt 3.11 geschrieben und sendet mittels QSocket und QTextStream eine Mitteilung an Programm B, geschrieben in Qt 4.4.0.
Dabei wird in Programm A ein Connect im Konstruktor aufgebaut und über die Funktion SendMessage(QString) eine Mitteilung an Programm B gesendet.
Programm B liest diese Mitteilung ein, sobald ein SIGNAL(readyRead()) aus der "nextPendingConnection" eintrifft. Diese Message wird per
Code: Alles auswählen
QString msg = "";
QTextStream is(m_ClientConnection); // InputStream
msg.append(is.readAll());
Rufe ich nun direkt 3x hintereinander die Funktion SendMessage auf, so kommt in Programm B lediglich eine Mitteilung an. Der Inhalt besteht aus Mitteilung 1 + Mitteilung 2 + Mitteilung 3 gesendet aus Programm A.
Nun habe ich mit einem Arbeitskollegen gesprochen, der meinte, dass das Betriebssystem und auch TCP/IP hochoptimiert arbeitet, was Traffic angeht. Das OS "sieht" also, das Programm A möchte gern etwas direkt hintereinander senden, packt die drei Mitteilungen also in ein Paket zusammen und verschickt es als solches?
Interessant dabei ist noch, dass wenn ich hinter die SendMessage-Funktionen in Programm A einen Breakpoint setze, und langsam durchsteppe, in Programm B erst etwas angezeigt wird, sobald die letzte Message aus Programm A versendet wurde.
Über eine Lösung des Problems, oder auch Hinweise bin ich sehr gespannt und natürlich auch dankbar.
Mfg KK