AGB  ·  Datenschutz  ·  Impressum  







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

Client - Server [Datentrennung]

Ein Thema von Nowo · begonnen am 26. Mär 2008 · letzter Beitrag vom 26. Mär 2008
Antwort Antwort
Nowo

Registriert seit: 16. Mär 2008
13 Beiträge
 
#1

Client - Server [Datentrennung]

  Alt 26. Mär 2008, 18:26
Hallo alle Zusammen

Ich habe lange gesucht, viel gefunden, aber nie genau das was ich suchte.

Das Problem:

Ich habe einen Server, 2-5 Clienten ( die anzahl ist erstmal egal mir gehts um prinzip :-p ).

Der Client hat in sich viele eigenschafften, zum Beispiel soll er einen Bestimmten Text in eine datei reinschreiben.
Oder mir auch eine bestimmte Info zukommen lassen.

Aber wie realisiere ich das ?

Ich habe da etwas von einem Protokoll gehört... das ungefähr so aussieht:
Zumindest stell ich mirs so vor:

Server:
protokoll senden: TYP:'DateiSchreiben',#1:'DateiName',#2:'Inhalt'
oder
protokoll senden: TYP:'InfoGeben',#1:'UserName',#2:''


Client:
protokoll lesen: if TYP='DateiSchreiben' erstelle datei mit #1 und inhalt #2
und
protokoll lesen: if TYP='InfoGeben' lese aus und sende #1



Ich würde gerne wissen wie ich das realisiere.

Ich hoffe jemand versteht mich...


Viele Grüße und ein riesiges Dankeschön
Nowo
  Mit Zitat antworten Zitat
dazar_t

Registriert seit: 1. Dez 2007
Ort: NRW
118 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Client - Server [Datentrennung]

  Alt 26. Mär 2008, 18:30
Hallo

Das Protkoll nennt sich Terminator zeichen Protokoll und wird mit #13 getrennt
bsp: 'BEFEHL' +#13+ 'TEXT ZUM BEFHEL'
'SCHREIBE TEXT' +#13+ 'DEN ZU SCHREIBENDEN TEXT';
u.s.w
Es gibt ein gutes tutorial von dem User narses dafür einfach mal suchen


EDIT// habe dir den link mal rausgesucht : http://www.delphi-library.de/topic_54269.html
Daniel
Mit freundlichen Grüßen
__________________________________________________ ______
Ein Programm ist nur so gut wie sein entwickler.
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#3

Re: Client - Server [Datentrennung]

  Alt 26. Mär 2008, 18:40
Das Wichtigeste ist korrekte Differenzierung erstmal beim Server unter den Clients. Ich mache es immer so, dass ich einen Record im Data Feld jedes Sockets speichere in dem ich dann getrennte Buffer und sowas ablege.
Der zweite Punkt ist, dass du darauf achten musst, dass lange Befehle auch als ein einzelnes Stück ankommen, bzw schnell aufeinander gesendete kurze Befehle wirklich getrennt ankommen. Dafür empfiehlt es sich eine Art Software Buffer zu programmieren. Bevor ein Befehl gesendet wird, schickst du erstmal die Länge des Befehls als Cardinal vorweg. Der Empfänger hat einmal einen Pointer oder ein Array als Buffer und eine Cardinal Variable in der dann die Länge des Befehls steht. Er prüft dann, ob die Länge = 0 ist. Wenn ja nimmt er die ersten 4 Bytes der ankommenden Daten als Länge und fügt weitere Daten so lange dem Buffer hinzu, bis die Länge erreicht ist.
  Mit Zitat antworten Zitat
Nowo

Registriert seit: 16. Mär 2008
13 Beiträge
 
#4

Re: Client - Server [Datentrennung]

  Alt 26. Mär 2008, 18:45
Das Tutorial von Narses kenn ich... scheint mir aber meiner meinung nach etwas... ich weis nicht...
gibt es da nicht andere Lösungen ?

@Zacherl:
Hast du dazu ein Konkretes test/Demo Projekt ?
Denn, wie soll ich das sagen... wäre Delphi sie Sprache Latein,
hätte ich mein kleines Latinum noch nicht abgeschlossen.
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#5

Re: Client - Server [Datentrennung]

  Alt 26. Mär 2008, 18:47
Leider nichts Konkretes da ..
  Mit Zitat antworten Zitat
Nowo

Registriert seit: 16. Mär 2008
13 Beiträge
 
#6

Re: Client - Server [Datentrennung]

  Alt 26. Mär 2008, 19:10
Mh ok
Dann schonmal vielen Dank an euch beide dazar_t und Zacherl

Hat jemand noch eine Hilfestellung oder eine Seite mit Informationen für mich ?

Mir kann jeder Hinweis und jeder Tipp helfen


Schöne Grüße
Nowo
  Mit Zitat antworten Zitat
dazar_t

Registriert seit: 1. Dez 2007
Ort: NRW
118 Beiträge
 
Delphi 2007 Professional
 
#7

Re: Client - Server [Datentrennung]

  Alt 26. Mär 2008, 19:14
Zitat von Nowo:
Mh ok
Dann schonmal vielen Dank an euch beide dazar_t und Zacherl

Hat jemand noch eine Hilfestellung oder eine Seite mit Informationen für mich ?

Mir kann jeder Hinweis und jeder Tipp helfen


Schöne Grüße
Nowo
was hast du gegen das tutorial von Narses ?


EDTI:
eventuell hilft dir das weiter ist jetzt mal son ps. code aussem Compf und ziemlich hardgecodet also nur als gedanken stütze
Delphi-Quellcode:

procedure Client.OnRead(..)
var
Buffer: TStringlist;
begin
...//
Buffer := Socket.REcieve.Text;
//..

If Buffer[0] = 'BFEHEL1'
 begin
   //WAS BEI BEFEHL EINS TUHEN DABEI BUFFER[1] usw verwenden
 end;

If Buffer[0] = 'BEFEHL2'
 begin
    //USW.
 end;
 
end;


//SERVER

Socket.SendText('BEFEHL1' +#13+ 'BEFEHLSTEXT');

USW
Daniel
Mit freundlichen Grüßen
__________________________________________________ ______
Ein Programm ist nur so gut wie sein entwickler.
  Mit Zitat antworten Zitat
Antwort Antwort


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 00:47 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