Frage zu FastNetCompos
-
Hi Allerseits!
Ich setze mich gerade mit dem Thema "Streams über das Netz versenden" auseinander. Dazu habe ich mir das Beispiel für die FastnetCompos "NMStrmServ" und "NMStrm" angeguckt und erweitert. Funktioniert auch soweit.
Beim verschicken eines Streams kann man ja auf das Ereignis "NMStrmPacketSent" reagieren und sich den Verlauf schön anzeigen lassen:
//--------------------------------------------------------------------------- void __fastcall TFormMain::NMStrm1PacketSent(TObject *Sender) { Memo2->Lines->Add(IntToStr(NMStrm1->BytesSent)+" bytes of "+NMStrm1->BytesTotal+" sent"); }Nun wollte ich auch auf der Gegenseite die eintrudelnden Bytes anzeigen lassen. Die NMStrmServ-Compo hat hierzu aber im Object-Inspector sinnigerweise kein Ereignis "NMStrmServPacketRecvd" stehen. Das Objekt selber verfügt aber über diese Ereignisbehandlungsroutine. Also habe ich folgendes gemacht:
// Ereignisbehandlungsroutine in Konstruktor per Hand zuweisen __fastcall TFormMain::TFormMain(TComponent* Owner) : TForm(Owner) { NMStrmServ1->OnPacketRecvd = NMStrmServ1PacketRecvd; } void __fastcall TFormMain::NMStrmServ1PacketRecvd(TObject *Sender) { Memo1->Lines->Add(IntToStr(NMStrmServ1->BytesRecvd)+" bytes of "+NMStrmServ1->BytesTotal+" recieved."); }Das Ereignis wird ohne Exception zugewiesen, aber wärend desssen ein Stream empfangen wird nicht ausgelöst. Die empfangenen Bytes werden also nicht angezeigt. Wozu gibt es dann diese Routine und wozu kann ich da was zuweisen, obwohl eh nichts passiert? Mache ich was falsch?

-
*boing*