Einzelnen Beitrag anzeigen

napsterxx

Registriert seit: 18. Mär 2007
Ort: Borland
556 Beiträge
 
Delphi 7 Enterprise
 
#1

send() Callback soll Nachricht senden

  Alt 25. Aug 2009, 14:37
Moin ihr Lieben,
ich habe in einem Programm die send() Funktion gehookt da ich die Parameter so verändern möchte, dass ich noch eine Nachricht hinterher schicken kann.
Die Nachricht muss ein bestimmtes Format haben das ich mir zusammenbastel
Delphi-Quellcode:
function callbackSend( s: TSocket; var buf; len: Integer; flags: Integer ): Integer; StdCall;
var
  Str: AnsiString;
  Header: Byte;
  I: Integer;
begin
  Header := PByte(Cardinal(@pchar(buf)) + 1)^;
  if (Header = $04) then
  begin
    str := '48414c4c4f'; // HALLO
    str := 'f728' + IntToHex((length(str)+18) div 2, 2) + '0001ff0110' + str + '00'; // Nachrichtformat bauen
    len := len + (Length(str) div 2); // neue Länge festlegen

    for I := len - (Length(str) div 2) to len div 2 do // jedes Byte in den Buffer schreiben
      PByte(Cardinal(@pchar(buf)) + I)^ := StrToInt('$' + str[I*2+1] + str[I*2+2]);
    Result := newSend(s, buf, len, flags);
  end else
    Result := newSend(s, buf, len, flags);
end;
Irgendwie kommen wenn ich das so mache keine anderen Pakete mehr durch, und das kommt gar nicht erst an
Warum?
Du derefernzierst p2 einmal und weißt die Adresse von i zu. Das heißt p2 (also der Zeiger auf einen Zeiger) zeigt auf den Zeiger p1 welchen du so auf i zeigen lässt.
  Mit Zitat antworten Zitat