AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Client-Server-Datenübertragung
Thema durchsuchen
Ansicht
Themen-Optionen

Client-Server-Datenübertragung

Ein Thema von HJay · begonnen am 3. Dez 2012 · letzter Beitrag vom 21. Dez 2012
Antwort Antwort
Seite 2 von 3     12 3      
HJay

Registriert seit: 7. Dez 2009
172 Beiträge
 
Delphi XE7 Enterprise
 
#11

AW: Client-Server-Datenübertragung

  Alt 3. Dez 2012, 18:42
@mjustin: Danke, idHTTP werde ich mir morgen früh mal anschauen.

Die DataSnap-Idee werde ich morgen auch weiterverfolgen und vielleicht mal mit einem kurzen Demoprojekt ausprobieren.
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

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

AW: Client-Server-Datenübertragung

  Alt 3. Dez 2012, 19:35
DataSnap ist für solche Dinge gedacht.
Man kann Datasets, Streams und Objekte übertragen und auch Methoden vom Client aus auf dem Server ausführen.

Allerdings ist das Framework ziemlich fett und (was man so hört) relativ langsam und u.U. fehleranfällig.

Aber versuchen würde ich es an Deiner Stelle...


Bei den Indys muss immer der Client beim Server anfragen, der dann "nix" oder "ObjektDaten" zurück schickt.
Prinzipiell sollte das auch machbar sein.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#13

AW: Client-Server-Datenübertragung

  Alt 3. Dez 2012, 20:32
Bei den Indys muss immer der Client beim Server anfragen, der dann "nix" oder "ObjektDaten" zurück schickt.
So ist es eigentlich nicht: bei jeder TCP Verbindung sind beide Seiten völlig gleichberechtigt, der "Server" kann auch von sich aus das Senden von Daten an den "Client" beginnen. Bekannte asynchrone und bidirektionale Protokolle sind Telnet, WebSocket und STOMP.
Michael Justin
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

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

AW: Client-Server-Datenübertragung

  Alt 3. Dez 2012, 21:38
@mjustin
Bist Du sicher? Hast Du mal einen Link zu einem Beispiel?
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
 
#15

AW: Client-Server-Datenübertragung

  Alt 3. Dez 2012, 23:09
@stahli
das ist einer der Gründe warum ich für einfache Komponenten wie TCPClient unf TCPServer plädiert habe. Man merkt dann schneller dass da einfach eine nur Verbindung offen ist und kann sich in beider Richtungen austoben.
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
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#16

AW: Client-Server-Datenübertragung

  Alt 4. Dez 2012, 09:53
@mjustin
Bist Du sicher? Hast Du mal einen Link zu einem Beispiel?
Gerne, auf Stackoverflow zum Beispiel hier:

Indy TCP Client/Server with the client acting as a server

Delphi-Quellcode:
var
  sPrompt: String;
  sResponse: String;
begin
  // Set port to connect to
  IdTCPClient1.Port := 8080;
  // Set host to connect to
  IdTCPClient1.Host := '127.0.0.1';
  // Now actually connect
  IdTCPClient1.Connect;
  // Read the prompt text from the server
  sPrompt := IdTCPClient1.Socket.ReadLn;
  // Show it to the user and ask the user to respond
  sResponse := InputBox('Prompt', sPrompt, '');
  // Send user's response back to server
  IdTCPClient1.Socket.WriteLn(sResponse);
  // Show the user the server's final message
  ShowMessage(IdTCPClient1.Socket.AllData);
end;
oder serverseitig:

Delphi-Quellcode:
var
  sName: String;
begin
  // Send command to client immediately after connection
  AContext.Connection.Socket.WriteLn('What is your name?');
  // Receive response from client
  sName := AContext.Connection.Socket.ReadLn;
  // Send a response to the client
  AContext.Connection.Socket.WriteLn('Hello, ' + sName + '.');
  AContext.Connection.Socket.WriteLn('Would you like to play a game?');
  // We're done with our session
  AContext.Connection.Disconnect;
end;
Michael Justin
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.771 Beiträge
 
Delphi 10.4 Sydney
 
#17

AW: Client-Server-Datenübertragung

  Alt 4. Dez 2012, 10:03
.. das liegt doch schon im Protokoll (TCP) begründet, dass wenn eine Verbindung etabliert ist der Server auch mit dem Client kommunizieren kann.

Einzig der Client ist in der Lage ein TCP Verbindung zu initiieren.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#18

AW: Client-Server-Datenübertragung

  Alt 4. Dez 2012, 10:28
Einzig der Client ist in der Lage ein TCP Verbindung zu initiieren.
Ein Computer kann ein Server und Client zugleich sein (http://de.wikipedia.org/wiki/Client-Server-Modell).

Client ist die Seite, die einen Dienst auf einem Server nutzt. In der Regel stellt er auch die Verbindung her.

Eine bekannte Ausnahme von dieser Regel ist FTP im Active Modus, hierbei meldet sich der FTP Client an, danach baut der FTP Server eine Verbindung zum Client auf.

Bei Peer-To-Peer Netzen, in denen jeder Computer Verbindungen sowohl initiiert als auch akzeptiert, sind alle Rechner Client und Server gleichzeitig.
Michael Justin
  Mit Zitat antworten Zitat
HJay

Registriert seit: 7. Dez 2009
172 Beiträge
 
Delphi XE7 Enterprise
 
#19

AW: Client-Server-Datenübertragung

  Alt 5. Dez 2012, 12:31
Kurzes Feedback von mir:

DataSnap habe ich mit Delphi 2010 nicht zum Laufen bekommen. Alle Embarcadero-Tutorials setzen höhere Versionen voraus. Das in den Tutorial notwendige "DataSnap-Client-Module" gibt es bei mir unter "Menu > Neu > DataSnap" gar nicht. Schade, wäre einen Versuch wert gewesen. -- Zum Glück plane ich aber ohnehin ein Upgrade auf XE3 und werde mir die Sache dann noch einmal ansehen.

Also werde ich die kommenden Tage noch einmal einen Blick auf die vorgeschlagenen Indy-Komponenten werfen. Das war ja wohl die Empfehlung hier, oder? Bezüglich Internet gibt es dermaßen viel Auwahl, dass es wirklich schwer ist, sich als Anfänger zu entscheiden. Da hätte ich mir eher EINEN Satz perfekter, ausgereifter Komponenten gewünscht statt so ein Wirrwarr.

Danke für Eure Antworten in diesem Thread!
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#20

AW: Client-Server-Datenübertragung

  Alt 5. Dez 2012, 12:37
Als Alternative gibt es auch noch mORMot
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 13:09 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