![]() |
AW: Client-Server-Datenübertragung
@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. |
AW: Client-Server-Datenübertragung
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. |
AW: Client-Server-Datenübertragung
Zitat:
|
AW: Client-Server-Datenübertragung
@mjustin
Bist Du sicher? Hast Du mal einen Link zu einem Beispiel? |
AW: Client-Server-Datenübertragung
@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. |
AW: Client-Server-Datenübertragung
Zitat:
![]()
Delphi-Quellcode:
oder serverseitig:
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;
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; |
AW: Client-Server-Datenübertragung
.. 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 |
AW: Client-Server-Datenübertragung
Zitat:
![]() 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. |
AW: Client-Server-Datenübertragung
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! |
AW: Client-Server-Datenübertragung
Als Alternative gibt es auch noch
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:22 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