lNet: TLTcpComponent.Get - Parameter ohne Typ? [gelöst]
-
- Beiträge: 462
- Registriert: Mi 30. Jul 2008, 13:11
- OS, Lazarus, FPC: WinXP SP3 (L 0.9.28.2 FPC 2.2.4)
- CPU-Target: 32Bit
- Kontaktdaten:
lNet: TLTcpComponent.Get - Parameter ohne Typ? [gelöst]
TLTcpComponent.Get ist auf http://members.chello.sk/ales/docs/lnet/tltcp.get.html dokumentiert. Der Parameter aData hat allerdings keinen Typ. Wie verwende ich diesen? Das ist das erste Mal, dass mir ein typloser Parameter über den Weg läuft...
Zuletzt geändert von RSE am Fr 18. Dez 2009, 03:23, insgesamt 1-mal geändert.
Seit er seinen neuen Computer hat, löst er alle Probleme, die er vorher nicht hatte!
Re: lNet: TLTcpComponent.Get - Parameter ohne Typ?
Irgendwie haltRSE hat geschrieben:TLTcpComponent.Get ist auf http://members.chello.sk/ales/docs/lnet/tltcp.get.html dokumentiert. Der Parameter aData hat allerdings keinen Typ. Wie verwende ich diesen? Das ist das erste Mal, dass mir ein typloser Parameter über den Weg läuft...

z.B.
Code: Alles auswählen
procedure TForm1.Button1Click(Sender: TObject);
const Bufsize=2048;
var Buf:Pchar;
begin
Buf:=StrAlloc(bufsize);
MyLTcp.Get(Buf^,bufsize,nil);
//tuwas
StrDispose(Buf);
end;
-
- Beiträge: 462
- Registriert: Mi 30. Jul 2008, 13:11
- OS, Lazarus, FPC: WinXP SP3 (L 0.9.28.2 FPC 2.2.4)
- CPU-Target: 32Bit
- Kontaktdaten:
Re: lNet: TLTcpComponent.Get - Parameter ohne Typ?
Ach verdammt, die Blindheit... aSize setze ich ja selbst und bekomme es nicht zurück!
Ich rufe also eine bestimmte Menge an Daten (aSize Bytes) vom BS-Puffer ab, bekomme sie über aData und der Funktionsrückgabewert sagt mir, wie voll mein Buffer (aData) geworden ist. Wenn der BS-Puffer danach immernoch Daten enthält (aSize zu klein war), wird der Event erneut ausgelöst. Sehe ich das richtig? Zumindest macht es so jetzt Sinn.
Warum erblindet man eigentlich immer dermaßen, wenn man sich mit Neuem auseinandersetzt?
Ich rufe also eine bestimmte Menge an Daten (aSize Bytes) vom BS-Puffer ab, bekomme sie über aData und der Funktionsrückgabewert sagt mir, wie voll mein Buffer (aData) geworden ist. Wenn der BS-Puffer danach immernoch Daten enthält (aSize zu klein war), wird der Event erneut ausgelöst. Sehe ich das richtig? Zumindest macht es so jetzt Sinn.
Warum erblindet man eigentlich immer dermaßen, wenn man sich mit Neuem auseinandersetzt?
Seit er seinen neuen Computer hat, löst er alle Probleme, die er vorher nicht hatte!
Re: lNet: TLTcpComponent.Get - Parameter ohne Typ?
Joh, also ich kenne die Funktion und Lnet überhaupt nicht, aber normalerweise ist es einfach so:RSE hat geschrieben:Zumindest macht es so jetzt Sinn.
Wenn das Resultat von Get < Bufsize ist, dann kommen keine weiteren Daten mehr. So würde ich das mal ausdrücken.

-
- Beiträge: 462
- Registriert: Mi 30. Jul 2008, 13:11
- OS, Lazarus, FPC: WinXP SP3 (L 0.9.28.2 FPC 2.2.4)
- CPU-Target: 32Bit
- Kontaktdaten:
Re: lNet: TLTcpComponent.Get - Parameter ohne Typ?
Danke erstmal, ich bin am Testapp proggen. Wenn die komplett ist, dann werd ich sie dem Autor von lNet mal anbieten, vielleicht setzt er sie ja als Beispiel und Demo mit auf seine Seite 

Seit er seinen neuen Computer hat, löst er alle Probleme, die er vorher nicht hatte!
-
- Beiträge: 512
- Registriert: Mo 25. Aug 2008, 18:17
- OS, Lazarus, FPC: ArchLinux x86, WinVista x86-64, Lazarus 0.9.29, FPC 2.4.1
- CPU-Target: x86
- Wohnort: Chemnitz
Re: lNet: TLTcpComponent.Get - Parameter ohne Typ?
Ein paar deiner Fragen (mit genug Fantasie übrigens sogar alle
) werden hier beantwortet:
http://lnet.wordpress.com/usage/sockets ... d-sending/" onclick="window.open(this.href);return false;

http://lnet.wordpress.com/usage/sockets ... d-sending/" onclick="window.open(this.href);return false;
-
- Beiträge: 462
- Registriert: Mi 30. Jul 2008, 13:11
- OS, Lazarus, FPC: WinXP SP3 (L 0.9.28.2 FPC 2.2.4)
- CPU-Target: 32Bit
- Kontaktdaten:
Re: lNet: TLTcpComponent.Get - Parameter ohne Typ?
Was meinst du mit "ein paar"? Ich hatte eigentlich nur eine, und die wird auf dieser Seite eben nicht beantwortet. Theo hat sie mir aber schon erschöpfend beantwortet und das Testprog läuft einwandfrei.
Seit er seinen neuen Computer hat, löst er alle Probleme, die er vorher nicht hatte!
-
- Beiträge: 512
- Registriert: Mo 25. Aug 2008, 18:17
- OS, Lazarus, FPC: ArchLinux x86, WinVista x86-64, Lazarus 0.9.29, FPC 2.4.1
- CPU-Target: x86
- Wohnort: Chemnitz
Re: lNet: TLTcpComponent.Get - Parameter ohne Typ?
Der Seite (bzw. generell dem Doku Abschnitt dort) kann man entnehmen, dass Empfangen und Senden jeweils ohne internen Buffer ablaufen. Wie das für Send aussieht, steht mit Beispiel dort - das kann man sich also (--> Fantasie *g*) auch aufs Empfangen spiegeln.RSE hat geschrieben:Was meinst du mit "ein paar"? Ich hatte eigentlich nur eine, und die wird auf dieser Seite eben nicht beantwortet. Theo hat sie mir aber schon erschöpfend beantwortet und das Testprog läuft einwandfrei.
Auch steht da, dass keine Events gefeuert werden, sondern du dich selbst ums Abholen der Daten kümmern musst.RSE hat geschrieben:[...], wird der Event erneut ausgelöst. Sehe ich das richtig?
Zugegeben, keins von beiden behandelt deine Ausgangsfrage. Die geht aber auch ein bisschen über den Rahmen von lNet hinaus - nämlich in Richtung Sprachfeatures


-
- Beiträge: 462
- Registriert: Mi 30. Jul 2008, 13:11
- OS, Lazarus, FPC: WinXP SP3 (L 0.9.28.2 FPC 2.2.4)
- CPU-Target: 32Bit
- Kontaktdaten:
Re: lNet: TLTcpComponent.Get - Parameter ohne Typ? [gelöst]
Mein Problem war tatsächlich nur der Umgang mit diesem untypisierten Parameter. Zusätzlich hatte ich übersehen, dass ich die Größe des Buffers ja selbst bestimme und übergebe und nicht bekomme. Als mir dieses Licht aufging, war ja alles klar. Das Empfangen mit GetMessage war von vornherein klar (so hatte ich es zuerst in meinem Prog umgesetzt), da ich das Beispiel gelesen und verstanden habe. Unverständlich war nur der untypisierte Parameter. Dieser war mir neu, da ich bisher tatsächlich noch nie mit Streams gearbeitet habe. Und das, obwohl ich seit nunmehr über 10 Jahren in meiner Freizeit programmiere (und nicht wenig) - ausschließlich TP, Delphi und Lazarus (in chronologischer Reihenfolge
).
Und bezüglich der Events: Ich habe eine GUI-Anwendung, und da feuern die auch automatisch.

Und bezüglich der Events: Ich habe eine GUI-Anwendung, und da feuern die auch automatisch.
Seit er seinen neuen Computer hat, löst er alle Probleme, die er vorher nicht hatte!