Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Indy nutzen (https://www.delphipraxis.net/42070-indy-nutzen.html)

glkgereon 13. Mär 2005 10:19


Indy nutzen
 
hi

also erstmal: ja, ich habe gesucht und ja, ich habe in die hilfe geschaut.

trotzdem habe ich folgendes problem:

Ich möchte den IdTCPServer bzw Client zur Kommunikation nehmen.
1: welches ereigniss wird ausgelöst, wenn sich ein client zum server verbindet?
2: wo finde ich eine liste aller verbindungen die der Server hat? (um ne "Rundmail" zu schicken)
3: wie kann ich überhaupt daten senden? (Strings, StringList, Streams)
4: welche Compo benutze ich am besten um wirkliche mengen an daten zu senden? (mehrere Megabyte)

wahrscheinlich würde mir auch ein gutes tutorial weiterhelfen, doc ich hab leider keins gefunden :(

das bei delphi-source (Indy-Tutorial) war doch imho etwas dürftig :(

mfg gereon

Chris1986 13. Mär 2005 11:04

Re: Indy nutzen
 
Hi glkgereon

Zu1: OnConnect? :stupid:

Zu2: TIdTCPServer.Threads beinhaltet für jede Verbindung einen TIdPeerThread
Zitat:

Zitat von Delphi-Hilfe
TIdPeerThread is a thread that is created for every connection made to the TIdTCPServer. Every client connection runs in it's own thread on the TIdTCPServer.

Zu3: Da gibts viele Möglichkeiten. Schau dir mal alle Methoden von TIdTCPClient an, die mit Write beginnen

Zu4: Da sind die Indy-TCP-Kompos schon die richtige Wahl. Große Datei in handliche Happen von ein paar KB zerlegen und dann alle nacheinander schicken und im Server wieder zusammen bauen. DataCool hatte da mal eine schöne Demo zu geschrieben.

MfG
Christian

glkgereon 13. Mär 2005 11:06

Re: Indy nutzen
 
kann ich auch dateien mit dem server senden?

edit:
wie kann ich denn auf die threads zugreifen?
normal kommt da nur Create, InstanceSize und SafeCallException, als Array kommt da gar nix :(

jfheins 13. Mär 2005 11:11

Re: Indy nutzen
 
Da hab' ich schonmal was geschrieben ... TClientsTClients

IngoD7 13. Mär 2005 11:12

Re: Indy nutzen
 
Zitat:

Zitat von glkgereon
ja, ich habe in die hilfe geschaut.

Wenn du es schon so betonst, dann möchte ich auch antworten, dass ich das kaum glauben kann.

Ich kenne die Antworten auf deine Fragen auch nicht auswendig und schaue jetzt in die Hilfe zu TIdTCPServer.

Eigentlich sofort fällt ins Auge:
zu Frage 1: das Ereignis OnConnect

Mit etwas suchen in den Eigenschaften:
zu Frage 2: die Eigenschaft Threads

Das müsste eigentlich erstmal helfen.

Frage 3 und 4 geht mir zu tief, da ich keinerlei Erfahrungen damit habe.

//Edit: Und ziemlich langsam beim Schreiben des Postings ist man auch, wenn man während dessen die Hilfe studiert. :gruebel: :cry: :lol:

glkgereon 13. Mär 2005 11:15

Re: Indy nutzen
 
ich steh nur immernoch vor dem problem: was macht OnExecute???

und wie komme ich bitte an die Daten von Threads ran???

Chris1986 13. Mär 2005 11:47

Re: Indy nutzen
 
On Execute wir ausgelöst, sobald ein Client mit dem Server kommuniziert.

Zum Zugriff: Sieh dir erstmal TList an. Hier ein noch ein kleines Beispiel, wie man an einzelne Clients kommt:
Delphi-Quellcode:
var eineVerbindung: TIdPeerThread;
begin
  try
    with idTCPServer1.Threads.LockList do
    begin
      if Count > 0
        then eineVerbindung := Items[0];
    end;
  finally
    idTCPServer1.Threads.UnlockList;
  end;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:44 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