AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Indy 10 TCP Client Server -> MemoryStreams übertragen

Indy 10 TCP Client Server -> MemoryStreams übertragen

Ein Thema von stahli · begonnen am 9. Okt 2012 · letzter Beitrag vom 25. Okt 2012
Antwort Antwort
daywalker9

Registriert seit: 1. Jan 2010
Ort: Leer
594 Beiträge
 
Delphi XE3 Professional
 
#1

AW: Indy 10 TCP Client Server -> MemoryStreams übertragen

  Alt 9. Okt 2012, 15:37
Gelöscht
Lars
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#2

AW: Indy 10 TCP Client Server -> MemoryStreams übertragen

  Alt 9. Okt 2012, 15:49
vielleicht ist auf der Seite http://www.atozedsoftware.com/Indy/D.../index.EN.aspx
der Link Live Stream http://downloads.atozed.com/indy/10/LiveStream.zip interessant für Dich.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.352 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Indy 10 TCP Client Server -> MemoryStreams übertragen

  Alt 9. Okt 2012, 19:57
Hallo Bummi,

ich bin nicht sicher, ob ein HTTP-Server identisch zu nutzen ist...

Danke dennoch. Ich schaue es mir an, komme aber erst die nächsten Tage dazu.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.352 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Indy 10 TCP Client Server -> MemoryStreams übertragen

  Alt 21. Okt 2012, 23:42
Der Link hat mich nicht konkret weiter gebracht.

Ich habe mein Demoprojekt einmal etwas vereinfacht und zunächst einmal versucht, die Rückgaben an die GUI (Memos und Button.Caption) threadsicher zu machen.
(Orientiert habe mich hieran: http://www.devarticles.com/c/a/Delph...n-in-Delphi/1/)

Allerdings komme ich damit auch nicht zurecht, da ich nicht verstehe, wie viele und welche Threads ich brauche, um das zu gewährleisten...
Es müssten 4 Memo-Ausgaben und das Schreiben in Button.Caption syncronisiert werden.

Wenn ich das so mache wie im verlinkten Beispiel funktioniert schon die Behandlung der Client-Read-Funktion nicht mehr.

Ich hätte auch eher versucht, in den Methoden:
Delphi-Quellcode:
procedure TFormIndy10TCPStreamTest.ButtonRandomClick(Sender: TObject);
procedure TFormIndy10TCPStreamTest.IdTCPServerTestExecute(AContext: TIdContext);
einen Thread mit einer anonnymen Methode zu starten und dort die eigentliche Behandlung vorzunehmen.

Kann mir jemand auf die Sprünge helfen?

Danach würde ich dann die verschiedenen Übertragungsformen testen (die lässt sich jetzt einfach über eine RadioGroup auswählen).
Angehängte Dateien
Dateityp: zip Indy10TCPStreamTest.zip (719,0 KB, 23x aufgerufen)
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#5

AW: Indy 10 TCP Client Server -> MemoryStreams übertragen

  Alt 22. Okt 2012, 07:35
Ich habe nur ein paar Stellen angebastelt, vielleicht hilft es trotzdem weiter ...
Angehängte Dateien
Dateityp: zip Indy10TCPStreamTest.zip (4,3 KB, 22x aufgerufen)
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)

Geändert von Bummi (22. Okt 2012 um 08:04 Uhr) Grund: warse käfer drin
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.352 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Indy 10 TCP Client Server -> MemoryStreams übertragen

  Alt 22. Okt 2012, 22:10
@Bummi:

Ich habe das Projekt mal weiter ausgebaut und aufgeräumt...

Folgender aktueller Stand:

+ die Übertragung "zu Fuß" und "changed" funktioniert wunderbar
- wenn allerdings "Show Info" eingestellt ist, dann dauert die Anzeige in den Memos ungefähr 20 Sekunden

- die Übertragung mit Endekennzeichen #0 funktioniert nur ein mal
- Endezeichen '|' funktioniert gar nicht

- die Übertragung per Stream liefert einen Leerstring

Werde mal sehen, ob ich morgen weiter komme...

Vielleicht wäre es grundsätzlich sinnvoll, die "Infos" in einem Protokoll-Array oder -List zu sammeln und bei Gelegenheit aus der Anwendung heraus (Timer/OnIdle) in die Memos zu schreiben.
Das Array müsste aber dann ja auch thread safe sein...
Angehängte Dateien
Dateityp: zip Indy10TCPStreamTest.zip (730,7 KB, 27x aufgerufen)
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#7

AW: Indy 10 TCP Client Server -> MemoryStreams übertragen

  Alt 22. Okt 2012, 22:32
Hi André,

wenn ich mir so anschaue womit Du Dich im allgemeinen beschäftigst (auch das Thema Livebindings via TCPIP) bin ich nicht sicher ob der INDY-Weg der optimale ist. Gegf. wäre es einfacher/übersichtlicher mit weniger "fetten" Komponenten wie z.B. TTcpServer mit im GetThread von TClientSocketThread abgeleiteten eigenen Threads, das Senden über Threads mit TTcpClient....
Zumindest ist dann der jeweilige Kontext für Dich(mich) transparent, Deadlocks, Blockings etc. leichter zu vermeiden.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Antwort Antwort

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