AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi IdSimpleServer: Wie Daten senden?
Thema durchsuchen
Ansicht
Themen-Optionen

IdSimpleServer: Wie Daten senden?

Ein Thema von DevilsCamp · begonnen am 1. Sep 2004 · letzter Beitrag vom 6. Sep 2004
Antwort Antwort
Seite 2 von 2     12   
DevilsCamp
(Gast)

n/a Beiträge
 
#11

Re: IdSimpleServer: Wie Daten senden?

  Alt 3. Sep 2004, 07:15
Zitat von Dax:
Du kannst stattdessen schreiben:
Delphi-Quellcode:
i := Length(AStatusMessage);
height := height - i;
Dann würde das gehen.


Leider auch nicht.
Es sieht wohl so aus, als ob OnStatus von der Komponente nicht ausgelöst wird (ich benutzte Indy 9.0.14)
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#12

Re: IdSimpleServer: Wie Daten senden?

  Alt 3. Sep 2004, 07:49
Schau mal ob es ein OnExecute gibt.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
DevilsCamp
(Gast)

n/a Beiträge
 
#13

Re: IdSimpleServer: Wie Daten senden?

  Alt 3. Sep 2004, 08:11
Es gibt:

OnDisconnect
OnStatus
OnWork
OnWorkBegin
OnWorkEnd


Aber irgendwie reagiert der auf keinen der 5 Events...

Des Weiteren gibt es in der Event-Liste noch (in Rot geschrieben):
Intercept
IOHandler

Folgendes steht in der Indy-Hilfe über Intercept:
Zitat:
Allows intercept of read and write operations for the connection.

property Intercept: TIdConnectionIntercept;

Description

Intercept is a TIdConnectionIntercept property used to act as an intermediary between the protocol stack and a TIdTCPConnection. Intercept is used to perform operations that can include logging send and receive operations, or provide Secure Socket Layer (SSL) support for the connection.
The Intercept must be Enabled to allow Intercept actions to be performed.

Über IOHandler steht folgendes:
Zitat:
Provides an abstract input/output source for send and receive operations.

property IOHandler: TIdIOHandler;

Description

IOHandler is a TIdIOHandler property that indicates the class to be used to provide input and output sources for the connection. IOHandler, and descendant classes, allow abstraction of send and receive operations using Socket connections, streams, or any input/output source where an IOHandler has been written. The default IOHandler in Indy is the socket-based TIdIOHandlerSocket.

IOHandler is used in methods that perform low-level read or write operations like ReadFromStack and WriteBuffer. IOHandler is also used in methods that access the connection status like CheckForDisconnect, Connected, DisconnectSocket, and Disconnect.

When accessing IOHandler in application code, always cast the IOHandler to the correct descendant class. This is needed to access any methods or properties in the descendant that cannot be represented in the ancestor class at runtime.

Vielleicht hilft das weiter (mir irgendwie nicht, obwohl ich doch recht gut Englisch verstehe...)
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#14

Re: IdSimpleServer: Wie Daten senden?

  Alt 3. Sep 2004, 13:56
Vielleicht liegt hier der Fehler:

Delphi-Quellcode:
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
   if CheckBox1.Checked then
      IdSimpleServer1.Listen
   else
      IdSimpleServer1.EndListen;
end;
Versuch mal statt .Listen .BeginListen.
  Mit Zitat antworten Zitat
DevilsCamp
(Gast)

n/a Beiträge
 
#15

Re: IdSimpleServer: Wie Daten senden?

  Alt 6. Sep 2004, 11:48
hat erstens nicht funktioniert und zweitens bin ich nun auf IdTCPServer mit MaxConnections=1 umgestiegen.
  Mit Zitat antworten Zitat
Benutzerbild von quirks
quirks

Registriert seit: 5. Sep 2004
Ort: Fischbachtal
46 Beiträge
 
Delphi 8 Professional
 
#16

Re: IdSimpleServer: Wie Daten senden?

  Alt 6. Sep 2004, 12:19
Bin grad in der Schule und deshalb ohne Indy, versuche aber trotzdem mal zu helfen.

Ich hab das immer so gemacht: Bei den Eigenschaften/Ereignissen des Servers gibt es ein OnExecute (oder ähnlich), das wird aufgerufen, wenn 1.) keine CommandHandler vorhanden sind oder 2.) CommandHandler deaktiviert werden. Im Normalzustand, also wenn du die Kompo gerade erst platziert hast, einfach eine Routine für On Exec. schreiben und fertig (einfacher gehts aber mit CommandHandlern)
  Mit Zitat antworten Zitat
DevilsCamp
(Gast)

n/a Beiträge
 
#17

Re: IdSimpleServer: Wie Daten senden?

  Alt 6. Sep 2004, 15:40
Auf die Idee wäre ich auch gekommen, wenn TIdSimpleServer ein OnExecute Event hätte
Gibt es aber nicht.

Ich habe es jetzt aber auch geschafft die TIdTCPServer Komponente funktionierend in mein Programm einzubauen (bisher ist beim Versand von Dateien der Server einfach eingefroren, trotz TIdAntiFreeze)...
  Mit Zitat antworten Zitat
Benutzerbild von quirks
quirks

Registriert seit: 5. Sep 2004
Ort: Fischbachtal
46 Beiträge
 
Delphi 8 Professional
 
#18

Re: IdSimpleServer: Wie Daten senden?

  Alt 6. Sep 2004, 16:20
OK, bin jetzt zu Hause und kann "interaktiv" Hilfe leisten

Hab meinen Fehler gefunden. Hast recht, IdSimpleServer hat kein OnExecute etc.

Hab an IdTCPServer (bzw. IdUDPServer) gedacht. Der ist zwar ein bisschen größer im Quälcode, ist aber SEHR viel einfacher zu handhaben. Mit OnConnect oder OnExecute oder ein paar CommandHandlern wird das bestimmt gehen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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