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 einem TIdContext Objekt aufgerufen, über das man sich mit Context->Connection->IOHandler->InputBuffer durchhangeln kann. Nur ist der Inputpuffer vom Typ TIdBuffer und in seinem Funktionsumfang stark eingeschränkt. Ich möchte die (Binär-)Daten an einen std::vector anhängen, allerdings bietet mir TIdBuffer 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 dem TIdBuffer in einen vector übertragen kann?


Anmelden zum Antworten