Empfangene Daten als String bekommen (WSARecv)
Hey,
ich habe folgende API gehookt (mal wieder :D):
Delphi-Quellcode:
Das funktioniert auch wunderbar. Das Problem ist etwas eigentlich recht Banales .. wie erhalte ich die empfangenen Daten in einem string?
Function Hook_WSARecv( fSocket: TSocket; flpBuffers: lpWSABuf; fdwBufferCount: DWORD; Var flpNumberOfBytesRecvd: DWORD; Var lpFlags: DWORD; flpOverlapped: lpWSAOverlapped; flpCompletionRoutine: lpWSAOverlapped_Completion_Routine ): Integer; StdCall;
Wenn ich die Funktion richtig verstanden habe wird sie mehrmals aufgerufen, auch wenn nur ein Datenpaket übertragen wurde. Die Anzahl der Aufrufe stehen dann in fdwBufferCount? Das ist jetzt mal so mehr oder weniger geraten .. |
Re: Empfangene Daten als String bekommen (WSARecv)
Ich hab das hier im MSDN gefunden:
Zitat:
|
Re: Empfangene Daten als String bekommen (WSARecv)
Komischerweise .. oder besser gesagt Gott-sei-Dank funktioniert es wenn ich die Daten des Buffers mittels
Delphi-Quellcode:
in ein ByteArray kopiere. Über String(ABytes) kann ich mir dann auch meinen String generieren :)
var
ABytes: array of byte; begin CopyData(ABytes, flpBuffers^.buf, flpBuffers^.len); {..} end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:26 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz