AGB  ·  Datenschutz  ·  Impressum  







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

Client Server Kommunikation & Protokoll

Ein Thema von uht · begonnen am 25. Apr 2007 · letzter Beitrag vom 26. Apr 2007
 
uht

Registriert seit: 3. Dez 2005
46 Beiträge
 
Delphi 2005 Personal
 
#1

Client Server Kommunikation & Protokoll

  Alt 25. Apr 2007, 21:40
Hallo,

meine Anwendung besteht aus einem Server und mehreren Clients, die Clients sollen bloß die Darstellung der Daten übernehmen. Der Server übernimmt alle Berechnungen. Damit die Kommunikation untereinander klappt habe ich mir folgendes Protokoll überlegt:
Der Client schickt eine Nachricht mit der Nummer der Funktion die aufgerufen werden soll an den Server, dieser meldet ein 'bereit' zurück und beginnt mit der Berechnung.
Wenn die Anwendung fertig ist, können das schon an die 100 verschiedene Funktionen werden die so aufgerufen werden sollen.

Delphi-Quellcode:
procedure TTCServer.IdTCPServerExecute(AContext: TIdContext);
  var
    msg: String;
  begin

    try
      msg:= AContext.Connection.IOHandler.Readln;
      log('Funktion ' + msg); // Clientauftrag in Log schreiben
      case StrToInt(msg) of
        100: begin // Versionsprüfung
               AContext.Connection.IOHandler.WriteLn('#100'); // #100 = bereit
               versionspruefung(AContext);
             end;
        150: begin // Datei empfangen
               AContext.Connection.IOHandler.WriteLn('#100'); // #100 = bereit
               datei_empfangen(AContext);
             end;
        151: begin // Datei senden
               AContext.Connection.IOHandler.WriteLn('#100'); // #100 = bereit
               datei_senden(AContext);
             end;
      else
        begin
          log('Anweisung ' + msg + ' existiert nicht');
          AContext.Connection.IOHandler.WriteLn('#200'); // #200 = Fehler-Funktion existiert nicht
        end;
      end;

    except
      log('Konnte Clientanweisung nicht lesen.');
    end;

  end;
Ist das eine sinnvolle Lösung, verpackt man sowas noch in Klassen oder gibt es dazu einen ganz anderen Ansatz?

Da ich nur Hobbyprogrammierer bin, fehlt mir noch die Theorie zu diesem Thema.
  Mit Zitat antworten Zitat
 


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 14:32 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