AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Indy nutzen

Ein Thema von glkgereon · begonnen am 13. Mär 2005 · letzter Beitrag vom 13. Mär 2005
Antwort Antwort
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#1

Indy nutzen

  Alt 13. Mär 2005, 11:19
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
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Chris1986

Registriert seit: 17. Jul 2003
Ort: Aachen
350 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Indy nutzen

  Alt 13. Mär 2005, 12:04
Hi glkgereon

Zu1: OnConnect?

Zu2: TIdTCPServer.Threads beinhaltet für jede Verbindung einen TIdPeerThread
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
Es gibt nur 10 Typen von Menschen auf der Welt:
Die, die Binärcode verstehen und die, die es nicht tun . . .
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#3

Re: Indy nutzen

  Alt 13. Mär 2005, 12:06
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
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#4

Re: Indy nutzen

  Alt 13. Mär 2005, 12:11
Da hab' ich schonmal was geschrieben ... TClientsTClients
  Mit Zitat antworten Zitat
IngoD7

Registriert seit: 17. Feb 2004
464 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Indy nutzen

  Alt 13. Mär 2005, 12:12
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.
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#6

Re: Indy nutzen

  Alt 13. Mär 2005, 12:15
ich steh nur immernoch vor dem problem: was macht OnExecute???

und wie komme ich bitte an die Daten von Threads ran???
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Chris1986

Registriert seit: 17. Jul 2003
Ort: Aachen
350 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Indy nutzen

  Alt 13. Mär 2005, 12:47
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;
Es gibt nur 10 Typen von Menschen auf der Welt:
Die, die Binärcode verstehen und die, die es nicht tun . . .
  Mit Zitat antworten Zitat
Antwort Antwort


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 21:39 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