AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Mit Indy TcpServer Daten in einen void* Buffer schreiben
Thema durchsuchen
Ansicht
Themen-Optionen

Mit Indy TcpServer Daten in einen void* Buffer schreiben

Ein Thema von cytrinox · begonnen am 12. Nov 2008
Antwort Antwort
cytrinox

Registriert seit: 4. Sep 2006
88 Beiträge
 
#1

Mit Indy TcpServer Daten in einen void* Buffer schreiben

  Alt 12. Nov 2008, 12:35
Hi,

ich möchte ankommende Daten von einem Client in einen void* Buffer schreiben.

Die Funktion die das machen soll sieht so aus:

Delphi-Quellcode:
function my_reader(arg: Pointer; buf: Pointer; buf_size: size_t): Integer; cdecl;
var
obj            : TMpdtpConnection;
  mybuf         : TBytes;
  stream      : TMemoryStream;   
begin
   stream := TMemoryStream.Create;
  stream.SetSize(buf_size);
   if (not Assigned(arg)) or (not Assigned(buf)) then
     ShowMessage('not assigned');

   obj := TMpdtpConnection(arg);
  obj.Connection.IOHandler.ReadStream(stream, buf_size);
  stream.Seek(0, soBeginning);
  ShowMessage('moved: ' + IntToStr(stream.Read(buf, buf_size)));
  ShowMessage('readbytes: ' + IntToStr(buf_size));
  FreeAndNil(stream);
  result := 0;
end;
TMpdtpConnection is übrigens abgeleitet von TIdContext.


Ich versuche die Daten zuerst in einen MemoryStream einzulesen und dann in den Buffer (buf) zu schreiben. Der Speicher
hierfür wird von der Funktion die die my_reader() aufruft bereitgestellt (mit calloc() in C)

Wenn ich mir dann aber buf hinterher genauer ansehe (ich sende als erste zwei bytes 0xaabb) dann steht in buf an erster und zweiter stelle immer noch 00 00 (so wie von calloc ja bereitgestellt). Bevor ich jetzt alles auseinanderpflücke: stimmt das mit dem MemoryStream so überhaupt? Und kann man wenn man buf via TBytes(buf^) castet auch direkt, also ohne MemoryStream in den Buffer schreiben?
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:24 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