Netzwerk
-
Moin, und noch eine Frage, diesmal zum Thema Netzwerk
Ich habe einen wxSocketServer erstellt, habe eine Verbindung angenommen, das dabei erzeugte Objekt vom Typ wxSocketBase genommen und mein Fenster als Eventhandler gesetzt, habe das SocketBase-Objekt informiert, dass ich über eingehenden Verkehr informiert werden möchte und es klappt auch alles, die Verbindung wird aufgebaut und ich empfange. Aber woher bekomme ich eine Information darüber, WIEVIEL ich empfangen habe? die Read-Methode erwartet einen Puffer und eine Anzahl an zu lesenden Zeichen. Aber wenn ich nicht gerade nach einem Protokoll kommuniziere, aus dem sich die zu empfangende Anzahl an Zeichen ergibt scheine ich etwas aufgeschmissen zu sein.
MfG Nemo
-
so mach ichs:
bool Protocol::readResponse() { char buffer[1001]; int num_read; socket->Read(buffer,1000); num_read = socket->LastCount(); buffer[num_read]='\0'; return input.Filter(std::string(buffer),Input::SA); }
wenn LastCount 1000 zurückgibt, musst du natürlich noch weiter lesen.
-
Danke, der Ansatz passt, natürlich muss man dann nowait gewählt haben, damit er nicht versucht 1000 Zeichen zu lesen, sondern nur was da ist bis zu 1000. Aber der Ansatz hilft mir weiter, besten Dank.
MfG Nemo