Synapse socket.OnMonitor Event

Alle Fragen zur Netzwerkkommunikation

Synapse socket.OnMonitor Event

Beitragvon DL3AD » 9. Feb 2018, 11:07 Synapse socket.OnMonitor Event

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
DL3AD
 
Beiträge: 371
Registriert: 13. Sep 2013, 11:07
Wohnort: Rügen
OS, Lazarus, FPC: Win7 (L 1.8.0 FPC 3.0.4) und Debian Stretch (L 1.8.0 FPC 3.0.4) | 
CPU-Target: 32Bit/64Bit
Nach oben

Beitragvon theo » 9. Feb 2018, 12:34 Re: Synapse socket.OnMonitor Event

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"...)
theo
 
Beiträge: 8063
Registriert: 11. Sep 2006, 18:01

Beitragvon DL3AD » 9. Feb 2018, 12:43 Re: Synapse socket.OnMonitor Event

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 ?
DL3AD
 
Beiträge: 371
Registriert: 13. Sep 2013, 11:07
Wohnort: Rügen
OS, Lazarus, FPC: Win7 (L 1.8.0 FPC 3.0.4) und Debian Stretch (L 1.8.0 FPC 3.0.4) | 
CPU-Target: 32Bit/64Bit
Nach oben

Beitragvon theo » 9. Feb 2018, 12:50 Re: Synapse socket.OnMonitor Event

Ich verstehe deine Frage nicht. Aber vielleicht hilft das weiter:
http://www.ararat.cz/synapse/doku.php/p ... ebugsocket
theo
 
Beiträge: 8063
Registriert: 11. Sep 2006, 18:01

Beitragvon DL3AD » 9. Feb 2018, 13:06 Re: Synapse socket.OnMonitor Event

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.
DL3AD
 
Beiträge: 371
Registriert: 13. Sep 2013, 11:07
Wohnort: Rügen
OS, Lazarus, FPC: Win7 (L 1.8.0 FPC 3.0.4) und Debian Stretch (L 1.8.0 FPC 3.0.4) | 
CPU-Target: 32Bit/64Bit
Nach oben

Beitragvon theo » 9. Feb 2018, 17:25 Re: Synapse socket.OnMonitor Event

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?
theo
 
Beiträge: 8063
Registriert: 11. Sep 2006, 18:01

Beitragvon DL3AD » 9. Feb 2018, 18:10 Re: Synapse socket.OnMonitor Event

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

Ein kleines Beispiel wie man es macht würde mir wirklich weiterhelfen.
DL3AD
 
Beiträge: 371
Registriert: 13. Sep 2013, 11:07
Wohnort: Rügen
OS, Lazarus, FPC: Win7 (L 1.8.0 FPC 3.0.4) und Debian Stretch (L 1.8.0 FPC 3.0.4) | 
CPU-Target: 32Bit/64Bit
Nach oben

Beitragvon theo » 9. Feb 2018, 18:30 Re: Synapse socket.OnMonitor Event

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.
theo
 
Beiträge: 8063
Registriert: 11. Sep 2006, 18:01

Beitragvon DL3AD » 9. Feb 2018, 18:56 Re: Synapse socket.OnMonitor Event

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.
DL3AD
 
Beiträge: 371
Registriert: 13. Sep 2013, 11:07
Wohnort: Rügen
OS, Lazarus, FPC: Win7 (L 1.8.0 FPC 3.0.4) und Debian Stretch (L 1.8.0 FPC 3.0.4) | 
CPU-Target: 32Bit/64Bit
Nach oben

Beitragvon theo » 10. Feb 2018, 09:08 Re: Synapse socket.OnMonitor Event

Wie sieht denn dein bisheriger Code aus?
Zeig den doch mal.
theo
 
Beiträge: 8063
Registriert: 11. Sep 2006, 18:01

Beitragvon DL3AD » 10. Feb 2018, 10:33 Re: Synapse socket.OnMonitor Event

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
DL3AD
 
Beiträge: 371
Registriert: 13. Sep 2013, 11:07
Wohnort: Rügen
OS, Lazarus, FPC: Win7 (L 1.8.0 FPC 3.0.4) und Debian Stretch (L 1.8.0 FPC 3.0.4) | 
CPU-Target: 32Bit/64Bit
Nach oben

Beitragvon kupferstecher » 10. Feb 2018, 11:34 Re: Synapse socket.OnMonitor Event

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.
kupferstecher
 
Beiträge: 165
Registriert: 17. Nov 2016, 11:52

Beitragvon theo » 10. Feb 2018, 11:40 Re: Synapse socket.OnMonitor Event

@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.
theo
 
Beiträge: 8063
Registriert: 11. Sep 2006, 18:01

Beitragvon DL3AD » 10. Feb 2018, 13:34 Re: Synapse socket.OnMonitor Event

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
DL3AD
 
Beiträge: 371
Registriert: 13. Sep 2013, 11:07
Wohnort: Rügen
OS, Lazarus, FPC: Win7 (L 1.8.0 FPC 3.0.4) und Debian Stretch (L 1.8.0 FPC 3.0.4) | 
CPU-Target: 32Bit/64Bit
Nach oben

Beitragvon theo » 10. Feb 2018, 13:51 Re: Synapse socket.OnMonitor Event

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.
theo
 
Beiträge: 8063
Registriert: 11. Sep 2006, 18:01

» Weitere Beiträge siehe nächste Seite »
Nächste

Zurück zu Netzwerk



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

porpoises-institution
accuracy-worried