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
OnServerExecute
Event Handler wird mit einemTIdContext
Objekt aufgerufen, über das man sich mitContext->Connection->IOHandler->InputBuffer
durchhangeln kann. Nur ist der Inputpuffer vom TypTIdBuffer
und in seinem Funktionsumfang stark eingeschränkt. Ich möchte die (Binär-)Daten an einenstd::vector
anhängen, allerdings bietet mirTIdBuffer
nicht 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 demTIdBuffer
in einen vector übertragen kann?