Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi D7+Indy 10 -> TCP Server Verbindungen in Klasse abkapseln? (https://www.delphipraxis.net/95989-d7-indy-10-tcp-server-verbindungen-klasse-abkapseln.html)

sveni2211 17. Jul 2007 11:14


D7+Indy 10 -> TCP Server Verbindungen in Klasse abkapseln
 
Hallo. Ich habe Delphi 7 Pro und benutze die Indy Components in der Version 10.0.52.

Ich möchte nun gern folgendes realisieren, komme da aber irgendwie nicht vorwärts.

Ich möchte einen TCP-Server laufen lassen. Wenn eine Verbindung eingeht möchte ich diese an eine Klasse übergeben. Diese Klasse soll sich dann komplett um diese Verbindung kümmern. In der Klasse ist quasi das ganze Protokoll enthalten. Die Klasse soll also Nachrichten von den Clients bemerken und auf diese reagieren. Zusätzlich sollen in der Klasse Anmelde- Informationen und Status- Informationen gespeichert bleiben, die sich aus dem Protokoll ergeben.

Ich habe nun schon etliche Beispiele zu Indy durchgearbeitet. Aber entweder haben die eine andere Basis (bei mir übergibt Connect aus dem TCP Server eine Variable AContext, nicht die in fast allen Beispielen angeführte IdThreadConnection. Mir ist an dieser Stelle auch nicht klar, wie ich dieses AContext an die Klasse übergeben könnte, dass die Klasse sowohl senden als auch empfangen kann.

Vielleicht hat jemand dazu einen guten Ansatz bzw. ein brauchbares Beispiel?

Sveni

Corpsman 17. Jul 2007 11:33

Re: D7+Indy 10 -> TCP Server Verbindungen in Klasse abkap
 
Also das weiterleiten an sich müste schon gehen,

ich nutze in meinem Balanced auch die indy Komponenten TCP /IP im speziellen um sicher zu stellen das Server und Cleint die selben Levels geladen haben. Bei mir sieht das so aus :

Delphi-Quellcode:


Procedure TNetwork.TcpServerExecute(AThread: TIdPeerThread);
Var
  fname, pfad, sClientMsg: String;
  FileReceiver: TFileReceiver;
Begin
  Try
    // Clientnachricht lesen
    sClientMsg := AThread.Connection.ReadLn(#$A, 5500);
    FileReceiver := TFileReceiver.Create(AThread, sClientMsg);
Wobei TFileReceiver dann ne Klasse ist die ich aus nem Sample hab und diese speichert mir dann die ankommenden daten in nem Memorystream den ich dann weiter verarbeiten kann ;).

ich hoffe das kann dir weiterhelfen ...

sveni2211 17. Jul 2007 12:42

Re: D7+Indy 10 -> TCP Server Verbindungen in Klasse abkap
 
Darf ich fragen welche Indy Version du verwendest?

Denn bei mir wird im Execute übergeben:

Delphi-Quellcode:
IdTCPServer1Execute(AContext: TIdContext);
Und dieses AContext enthält diesen PeerThread gar nicht.

Corpsman 17. Jul 2007 13:33

Re: D7+Indy 10 -> TCP Server Verbindungen in Klasse abkap
 
Indy 9 für D5


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