AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi BMP bzw. Stream Indy TCPServer an alle verbundenen Clients schicken
Thema durchsuchen
Ansicht
Themen-Optionen

BMP bzw. Stream Indy TCPServer an alle verbundenen Clients schicken

Ein Thema von Hobbycoder · begonnen am 5. Okt 2020 · letzter Beitrag vom 12. Okt 2020
Antwort Antwort
Seite 2 von 2     12   
Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
772 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: BMP bzw. Stream Indy TCPServer an alle verbundenen Clients schicken

  Alt 7. Okt 2020, 21:31
Hallo Harry

meine Bemerkung zu tcp war genereller Art und nicht Indy/ICS oder was auch immer spezifisch.

Ich verwende ausschliesslich ICS und kenne Indy sehr schlecht (und die 4'700 seitige PDF Anleitung mag nun echt niemand lesen ).

Aber soweit ich sehe, verwendet Indy "IOHandler" über welche die Kommunikation abgewickelt wird. Es gibt doch sicher Beispiele bei Emba.

Wenn du dort keins findest Hier gibt's eins inkl. herunterladbarem Code. Wenn du dem Serverprogramm noch ein SendeEdit:TEdit und einen SendeButton:TButton spendierst und das Beispiel durch den folgenden Code erweiterst

Delphi-Quellcode:
procedure TFServer.SendeButtonClick(Sender: TObject);
begin
  broadcastmessage( SendeEdit.Text );
end;
dann hast du ein "Client kann senden" und "Server darf aber auch" Beispiel.
Michael Gasser

Geändert von Michael II ( 7. Okt 2020 um 21:33 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.558 Beiträge
 
Delphi 12 Athens
 
#2

AW: BMP bzw. Stream Indy TCPServer an alle verbundenen Clients schicken

  Alt 7. Okt 2020, 23:10

Wenn du dort keins findest Hier gibt's eins inkl. herunterladbarem Code...
Wow, herzlichen Dank, wieder was dazugelernt...

Das wird mir bei einer Reihe von meinen Netzwerkprogrammen das Handling sehr vereinfachen...

(Das ist ein schönes Beispiel hier, dass man auch mit Wissenszuwachs belohnt werden kann, wenn eigentlich selber weiterhelfen wollte...)

Nachtrag: Interessanterweise scheint es dann so zu sein, dass mit der idTCPClient-Componente nach einem Writeln nicht mehr direkt eine Antwort des Servers abgefragt werden kann, da die idThreadComponente offensichtlich die Nachrichten zuerst abfängt.

Meine bestehende Anwendung kann ich daher leider nicht so einfach umstellen (müsste Senden und Empfangen splitten), aber für neue Anwendungen sicher eine Option...

Geändert von Harry Stahl ( 7. Okt 2020 um 23:40 Uhr)
  Mit Zitat antworten Zitat
Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#3

AW: BMP bzw. Stream Indy TCPServer an alle verbundenen Clients schicken

  Alt 8. Okt 2020, 09:40
Ich stelle gerade fest, dass ich meine Frage wohl missverständlich formuliert habe. Entschuldigung!

Ich habe bereits ein Chat-Programm auf Basis der schon genannten Empfehlung, welches hier schon empfohlen wurde.Zwangsläufig hatte ich mich mit den Untis beschäftigt. Und zumindest beim Bitmap-Empfang erfolgte eine Prüfung, ob die Pakete in der richtigen Reihenfolge kamen. Auch das System TCP/IP meine ich mit meinem laienhaften Verständnis einigermaßen erfasst zu haben. Ich bin eben nur Hobby-Programmierer.

Aber:
  1. Verstehe ich das richtig, dass ich das alle eben genannte vergessen kann und mich bei den Indys bloß noch um das Übertragungsprotokoll als solches kümmern muss? (Das dürfte für den Fragenersteller auch interessant sein.)
  2. Und verstehe ich das richtig, dass die Indys das auch so machen, dass mein Programm nicht mehr "einfriert", wenn die Verbindung eines Client hängt? (Bei Narses gibt es dazu einen händischen, aus meiner Sicht aufwändigen QoS-Teil in der Unit.) Oder wäre das nur bei den genannten ICS so?
Alex Winzer
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.010 Beiträge
 
Delphi 2009 Professional
 
#4

AW: BMP bzw. Stream Indy TCPServer an alle verbundenen Clients schicken

  Alt 8. Okt 2020, 11:03
  1. Verstehe ich das richtig, dass ich das alle eben genannte vergessen kann und mich bei den Indys bloß noch um das Übertragungsprotokoll als solches kümmern muss? (Das dürfte für den Fragenersteller auch interessant sein.)
  2. Und verstehe ich das richtig, dass die Indys das auch so machen, dass mein Programm nicht mehr "einfriert", wenn die Verbindung eines Client hängt? (Bei Narses gibt es dazu einen händischen, aus meiner Sicht aufwändigen QoS-Teil in der Unit.) Oder wäre das nur bei den genannten ICS so?
1. ja, genau so ist es (kein eigenes "Parsing" notwendig um zu erkennen ob eine auf Netzwerkebene päckchenweise gesendete Nachricht komplett angekommen ist)
2. serverseitig: ja; clientseitig muss ein Thread verwendet werden wenn die restliche Anwendung nicht einfrieren soll
Michael Justin
  Mit Zitat antworten Zitat
mytbo

Registriert seit: 8. Jan 2007
479 Beiträge
 
#5

AW: BMP bzw. Stream Indy TCPServer an alle verbundenen Clients schicken

  Alt 7. Okt 2020, 17:00
hat jemand ein gutes Beispiel, wie ich per Indy TCPServer ein Bitmap oder besser noch einen Stream an alle aktuell verbundenen Clients senden kann?
Wenn es auch mit der Open Source Library mORMot sein darf, kannst du es mit WebSockets implementieren. In der Hilfe zum WebSockets support findest du die notwendigen Informationen. Das hilfreiche Forum findest du hier.

Bis bald...
Thomas
  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 17:12 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