Synapse socket.OnMonitor Event

Alle Fragen zur Netzwerkkommunikation
DL3AD
Beiträge: 478
Registriert: Fr 13. Sep 2013, 12:07
OS, Lazarus, FPC: Debian Bullseye (L 2.2.0)
CPU-Target: 64Bit
Wohnort: Rügen

Synapse socket.OnMonitor Event

Beitrag von DL3AD »

Hallo,

wie wird das socket.OnMonitor Event verwendet ? - d.h. wie sieht die Struktur einer entsprechenden procedure aus ?
Wenn ich Events verwende z.B. Button1.click dann wird die Struktur ja durch den Objektinspektor automatisch erzeugt. - Wie ist es hier mit OnMonitor ?

Gruß
Frank

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: Synapse socket.OnMonitor Event

Beitrag von theo »

Naja, dem kann man ja nachgehen mit Rechtsklick "Finde Deklaration von.." bis man auf "THookMonitor" stösst.

Für bequeme Zeitgenossen geht es aber auch automatisch. ;-)

Schreibe:

Code: Alles auswählen

  MySock.OnMonitor:=

setze den Cursor hinter das Gleichheitszeichen und drücke Strg + Umschalt + C

Wahlweise auch über das Kontextmenu ("Quelle"...)

DL3AD
Beiträge: 478
Registriert: Fr 13. Sep 2013, 12:07
OS, Lazarus, FPC: Debian Bullseye (L 2.2.0)
CPU-Target: 64Bit
Wohnort: Rügen

Re: Synapse socket.OnMonitor Event

Beitrag von DL3AD »

Hallo theo,

ich habe es so verstanden dass OnMonitor ein Event feuert so wie ein Button.Click.
Beim Button habe ich dann folgende Struktur

Code: Alles auswählen

 
procedure TForm1.Button1Click(Sender: TObject);
begin
  mach.irgendwas
end;                                             
 


Wie geht das mit OnMonitor ?

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: Synapse socket.OnMonitor Event

Beitrag von theo »

Ich verstehe deine Frage nicht. Aber vielleicht hilft das weiter:
http://www.ararat.cz/synapse/doku.php/p ... ebugsocket

DL3AD
Beiträge: 478
Registriert: Fr 13. Sep 2013, 12:07
OS, Lazarus, FPC: Debian Bullseye (L 2.2.0)
CPU-Target: 64Bit
Wohnort: Rügen

Re: Synapse socket.OnMonitor Event

Beitrag von DL3AD »

in der Beschreibung steht folgendes

Code: Alles auswählen

 
 {:This event is good for monitoring content of readed or writed datas.}
    property OnMonitor: THookMonitor read FOnMonitor write FOnMonitor;
 


Nun dachte ich mir man kann mit OnMonitor ein Event feuern wenn etwas auf dem socket ankommt und muss nicht pollen ob was im buffer ist.

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: Synapse socket.OnMonitor Event

Beitrag von theo »

DL3AD hat geschrieben:Nun dachte ich mir man kann mit OnMonitor ein Event feuern wenn etwas auf dem socket ankommt und muss nicht pollen ob was im buffer ist.

Und was hält dich jetzt davon ab?

DL3AD
Beiträge: 478
Registriert: Fr 13. Sep 2013, 12:07
OS, Lazarus, FPC: Debian Bullseye (L 2.2.0)
CPU-Target: 64Bit
Wohnort: Rügen

Re: Synapse socket.OnMonitor Event

Beitrag von DL3AD »

UNWISSENHEIT sonst würde ich ja nicht fragen. :shock:

Ein kleines Beispiel wie man es macht würde mir wirklich weiterhelfen.

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: Synapse socket.OnMonitor Event

Beitrag von theo »

DL3AD hat geschrieben:UNWISSENHEIT sonst würde ich ja nicht fragen. :shock:

Ein kleines Beispiel wie man es macht würde mir wirklich weiterhelfen.


???
Ich habe dir oben gezeigt, wie man sich die Ereignisbehandlungsmethode automatisch erstellen lässt und ich habe dir hier ein Beispiel verlinkt.
Ich weiß wirklich nicht, was ich noch machen soll. Lesen musst du schon selber.
Außerdem habe ich das Event auch noch nie verwendet und weiß auch nicht mehr darüber.

DL3AD
Beiträge: 478
Registriert: Fr 13. Sep 2013, 12:07
OS, Lazarus, FPC: Debian Bullseye (L 2.2.0)
CPU-Target: 64Bit
Wohnort: Rügen

Re: Synapse socket.OnMonitor Event

Beitrag von DL3AD »

theo hat geschrieben:Naja, dem kann man ja nachgehen mit Rechtsklick "Finde Deklaration von.." bis man auf "THookMonitor" stösst.

Für bequeme Zeitgenossen geht es aber auch automatisch. ;-)

Schreibe:

Code: Alles auswählen

  MySock.OnMonitor:=

setze den Cursor hinter das Gleichheitszeichen und drücke Strg + Umschalt + C

Wahlweise auch über das Kontextmenu ("Quelle"...)


... damit kann ich nix anfangen und aus dem Link - dass durchschaue ich nicht.

Ist es so schwer meine Frage mit einem simplen Beispiel zu beantworten ?
Ich bin nicht der Oberguru im coden.

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: Synapse socket.OnMonitor Event

Beitrag von theo »

Wie sieht denn dein bisheriger Code aus?
Zeig den doch mal.

DL3AD
Beiträge: 478
Registriert: Fr 13. Sep 2013, 12:07
OS, Lazarus, FPC: Debian Bullseye (L 2.2.0)
CPU-Target: 64Bit
Wohnort: Rügen

Re: Synapse socket.OnMonitor Event

Beitrag von DL3AD »

Hallo theo,

ich habe ein spezielles Problem dargelegt - das lautet:

Bei Ankunft eines UDP-Datenpaketes ein Event zu feuern.
Ich dachte dass man es mit OnMonitor machen kann und bat um ein Beispielcode.

Der andere Code ist irrelevant !

Wenn du mir wirklich und ehrlich helfen willst - dann gib mir bitte ein Beispiel zu meiner konkreten Frage !
Wenn du nicht dazu in der Lage bist mir ein einfache Beispiel zu bringen dann halte dich bitte zurück ! :wink:

Gruß Frank

Benutzeravatar
kupferstecher
Beiträge: 418
Registriert: Do 17. Nov 2016, 11:52

Re: Synapse socket.OnMonitor Event

Beitrag von kupferstecher »

Theos Hilfe war doch gut. Wenn du was nicht verstehst, frag einfach nach.

Ich in deiner Situation taete einfach ein beliebiges Event zuweisen. Der Kompiler gibt dir dann eine Fehlermeldung, die sagt, wie das Event auszusehen hat.

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: Synapse socket.OnMonitor Event

Beitrag von theo »

@DL3AD: Du hast im Prinzip alle Informationen die du brauchst.
Da du offenbar die Übertragung dieser Informationen auf deinen konkreten Fall nicht hinkriegst, wollte ich auf deinen konkreten Fall eingehen, indem ich mir deinen Code anschaue.
Wenn du das auch nicht willst, dann halte ich mich nun tatsächlich zurück.

Trotzdem nochmal:

Du fragst: "wie wird das socket.OnMonitor Event verwendet ? "

Ich sage: mache ein ":=" hinter socket.OnMonitor im Editor und "setze den Cursor hinter das Gleichheitszeichen und drücke Strg + Umschalt + C"
Dann bekommst du von der IDE die Ereignisbehandlungsmethode in den Code geschrieben. Dort kannst du dann deinen Ereignisbehandlungscode hineinschreiben.

Damit sollte deine Frage beantwortet sein.

DL3AD
Beiträge: 478
Registriert: Fr 13. Sep 2013, 12:07
OS, Lazarus, FPC: Debian Bullseye (L 2.2.0)
CPU-Target: 64Bit
Wohnort: Rügen

Re: Synapse socket.OnMonitor Event

Beitrag von DL3AD »

theo hat geschrieben:Ich sage: mache ein ":=" hinter socket.OnMonitor im Editor und "setze den Cursor hinter das Gleichheitszeichen und drücke Strg + Umschalt + C"
Dann bekommst du von der IDE die Ereignisbehandlungsmethode in den Code geschrieben. Dort kannst du dann deinen Ereignisbehandlungscode hineinschreiben.


Das war die entscheidende hilfreiche Information - DANKE.
Nun ist die Ereignissbehandlungsmethode erstellt - das mit Strg + Umschalt + C kannte ich noch nicht.
Es gibt aber noch eine Fehlermeldung - TMemory kennt er nicht - fehlt mir da noch was in USES ?

Code: Alles auswählen

 
    { private declarations }
  private
    procedure RXsockMonitor(Sender: TObject; Writing: Boolean;
      const Buffer: TMemory; Len: Integer)//<= TMemory kennt er nicht
 


Gruß Frank

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: Synapse socket.OnMonitor Event

Beitrag von theo »

DL3AD hat geschrieben:Das war die entscheidende hilfreiche Information - DANKE.

Wenn du einfach gemacht hättest, was ich dir in der ersten Antwort empfohlen hatte, dann hättest du das auch gesehen. :wink:

DL3AD hat geschrieben:Es gibt aber noch eine Fehlermeldung - TMemory kennt er nicht - fehlt mir da noch was in USES ?

Klicke mit der rechten Maustaste auf die Fehlermeldung im Nachrichtenfenster.
Wähle "Suche Bezeichner".
Klicke im Code-Browser mit der rechten Maustaste auf "synsock" (denn nur dort ist TMemory deklariert) und wähle "Verwende Unit synsock in Unit ..."

Das kannst du immer so machen, wenn ein Bezeichner nicht gefunden wird.

Antworten