Indy TIdIOHandler Zugriff auf Daten
-
Hallo,
ich probier´ grad etwas mit den Indy Komponenten rum (TIdTCPServer/TIdTCPClient) und stehe vor der Frage, wie ich denn wohl auf die eingehenden Daten aus einer TCP/IP Verbindung zugreifen kann. Der
OnServerExecuteEvent Handler wird mit einemTIdContextObjekt aufgerufen, über das man sich mitContext->Connection->IOHandler->InputBufferdurchhangeln kann. Nur ist der Inputpuffer vom TypTIdBufferund in seinem Funktionsumfang stark eingeschränkt. Ich möchte die (Binär-)Daten an einenstd::vectoranhängen, allerdings bietet mirTIdBuffernicht einmal einen Lesezugriff auf den internen Puffer. Über entsprechende Methoden kann man einzelne Bytes abholen und an den vector anhängen, aber das kann ja wohl nicht die Lösung sein.
Es existieren Umwege über Streams, aber dabei müssten ja alle Daten 2x kopiert werden (IdBuffer -> Stream, Stream -> vector), das ist auch nicht so toll.
Weiß jemand, wie man die Daten möglichst schnell en-bloc aus demTIdBufferin einen vector übertragen kann?