AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Indy-Server OnConnect Problem

Ein Thema von Benni0811 · begonnen am 18. Mai 2017 · letzter Beitrag vom 23. Mai 2017
Antwort Antwort
Benni0811

Registriert seit: 26. Sep 2016
25 Beiträge
 
Delphi 10.1 Berlin Starter
 
#1

Indy-Server OnConnect Problem

  Alt 18. Mai 2017, 13:45
Hi,

ich habe ein Problem mit meinem IndyTcpServer. Sobald sich ein Client mit dem Server verbindet, wird nicht nur das OnConnect-Event ausgelöst, sondern auch das OnExecute-Event. In meinem Fall führt das zu einer Zugriffsverletzung, da im OnExecute-Event nur das Empfangen und Versenden von Nachrichten behandelt wird. Wie kann man dieses Problem lösen?
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
2.798 Beiträge
 
Delphi 2009 Professional
 
#2

AW: Indy-Server OnConnect Problem

  Alt 18. Mai 2017, 13:52
Wo tritt die Exception denn auf, in OnConnect oder in OnExecute? OnExecute wird immer wieder aufgerufen (in einer Schleife) solange eine Verbindung besteht, OnConnect normalerweise vorher und nur einmal je Connection.

Etwas Quellcode wäre hilfreich.

Michael Justin

Geändert von mjustin (18. Mai 2017 um 18:24 Uhr)
  Mit Zitat antworten Zitat
Benni0811

Registriert seit: 26. Sep 2016
25 Beiträge
 
Delphi 10.1 Berlin Starter
 
#3

AW: Indy-Server OnConnect Problem

  Alt 23. Mai 2017, 07:32
Problem gelößt, lag an meinem Code im Connect-Event.

Nur so aus Interresse: Wird das OnExecute-Event nur dann ausgelöst wenn ein verbundener Client sich rührt oder immer nach einer bestimmten Zeit solange eine Verbindung besteht?
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
5.653 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Indy-Server OnConnect Problem

  Alt 23. Mai 2017, 07:52
http://www.indyproject.org/docsite/h...OnExecute.html

Zitat:
OnExecute is a TIdServerThreadEvents event handler used to execute the task for a client connection to the server. OnExecute is signalled when the Scheduler executes the thread or fiber associated with the client connection.

[...]

When the thread or fiber is running, the OnExecute event handler is triggered inside a loop that continues to execute the event handler until the client is disconnected. This allows the OnExecute event handler procedure to be written in a straight-forward manner, and still yield to the Scheduler for the server.

Hätte ich jetzt auch anders erwartet...
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
2.798 Beiträge
 
Delphi 2009 Professional
 
#5

AW: Indy-Server OnConnect Problem

  Alt 23. Mai 2017, 08:42
Nur so aus Interresse: Wird das OnExecute-Event nur dann ausgelöst wenn ein verbundener Client sich rührt oder immer nach einer bestimmten Zeit solange eine Verbindung besteht?
Der Indy TCP Server macht im Grunde nur etwas in dieser Art:
Code:
while Client.IsConnected do
   OnExecute(Client.Context);
Ob man in OnExecute nur Daten vom Socket liest, oder nur Daten in den Socket an den Client sendet (oder beides) ist freigestellt.
Nur eine leeres OnExecute sollte man vermeiden

Konkretes Beispiel Server-Push:

https://mikejustin.wordpress.com/201...-push-example/
Michael Justin
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 +2. Es ist jetzt 22:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf